@dialpad/dialtone 9.76.3 → 9.77.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 (440) hide show
  1. package/dist/tokens/doc.json +15942 -15942
  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/components/avatar/avatar.vue.cjs +13 -24
  7. package/dist/vue2/components/avatar/avatar.vue.cjs.map +1 -1
  8. package/dist/vue2/components/avatar/avatar.vue.js +13 -24
  9. package/dist/vue2/components/avatar/avatar.vue.js.map +1 -1
  10. package/dist/vue2/components/badge/badge.vue.cjs +13 -34
  11. package/dist/vue2/components/badge/badge.vue.cjs.map +1 -1
  12. package/dist/vue2/components/badge/badge.vue.js +13 -34
  13. package/dist/vue2/components/badge/badge.vue.js.map +1 -1
  14. package/dist/vue2/components/chip/chip.vue.cjs +4 -4
  15. package/dist/vue2/components/chip/chip.vue.cjs.map +1 -1
  16. package/dist/vue2/components/chip/chip.vue.js +4 -4
  17. package/dist/vue2/components/chip/chip.vue.js.map +1 -1
  18. package/dist/vue2/components/collapsible/collapsible.vue.cjs +4 -3
  19. package/dist/vue2/components/collapsible/collapsible.vue.cjs.map +1 -1
  20. package/dist/vue2/components/collapsible/collapsible.vue.js +4 -3
  21. package/dist/vue2/components/collapsible/collapsible.vue.js.map +1 -1
  22. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs +14 -6
  23. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  24. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js +14 -6
  25. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  26. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs +6 -5
  27. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  28. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js +6 -5
  29. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  30. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs +23 -14
  31. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  32. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js +23 -14
  33. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  34. package/dist/vue2/components/empty_state/empty_state.vue.cjs +20 -80
  35. package/dist/vue2/components/empty_state/empty_state.vue.cjs.map +1 -1
  36. package/dist/vue2/components/empty_state/empty_state.vue.js +21 -81
  37. package/dist/vue2/components/empty_state/empty_state.vue.js.map +1 -1
  38. package/dist/vue2/components/empty_state/empty_state_constants.cjs +18 -0
  39. package/dist/vue2/components/empty_state/empty_state_constants.cjs.map +1 -1
  40. package/dist/vue2/components/empty_state/empty_state_constants.js +18 -0
  41. package/dist/vue2/components/empty_state/empty_state_constants.js.map +1 -1
  42. package/dist/vue2/components/icon/icon.vue.cjs +2 -2
  43. package/dist/vue2/components/icon/icon.vue.js +2 -2
  44. package/dist/vue2/components/illustration/illustration.vue.cjs +2 -2
  45. package/dist/vue2/components/illustration/illustration.vue.js +2 -2
  46. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs +4 -4
  47. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  48. package/dist/vue2/components/image_viewer/image_viewer.vue.js +4 -4
  49. package/dist/vue2/components/image_viewer/image_viewer.vue.js.map +1 -1
  50. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -9
  51. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  52. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js +22 -7
  53. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  54. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
  55. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  56. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
  57. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  58. package/dist/vue2/components/list_item/list_item.vue.cjs +3 -3
  59. package/dist/vue2/components/list_item/list_item.vue.cjs.map +1 -1
  60. package/dist/vue2/components/list_item/list_item.vue.js +3 -3
  61. package/dist/vue2/components/list_item/list_item.vue.js.map +1 -1
  62. package/dist/vue2/components/modal/modal.vue.cjs +4 -4
  63. package/dist/vue2/components/modal/modal.vue.cjs.map +1 -1
  64. package/dist/vue2/components/modal/modal.vue.js +4 -4
  65. package/dist/vue2/components/modal/modal.vue.js.map +1 -1
  66. package/dist/vue2/components/notice/notice_action.vue.cjs +4 -4
  67. package/dist/vue2/components/notice/notice_action.vue.cjs.map +1 -1
  68. package/dist/vue2/components/notice/notice_action.vue.js +4 -4
  69. package/dist/vue2/components/notice/notice_action.vue.js.map +1 -1
  70. package/dist/vue2/components/notice/notice_icon.vue.cjs +12 -8
  71. package/dist/vue2/components/notice/notice_icon.vue.cjs.map +1 -1
  72. package/dist/vue2/components/notice/notice_icon.vue.js +12 -8
  73. package/dist/vue2/components/notice/notice_icon.vue.js.map +1 -1
  74. package/dist/vue2/components/pagination/pagination.vue.cjs +11 -5
  75. package/dist/vue2/components/pagination/pagination.vue.cjs.map +1 -1
  76. package/dist/vue2/components/pagination/pagination.vue.js +11 -5
  77. package/dist/vue2/components/pagination/pagination.vue.js.map +1 -1
  78. package/dist/vue2/components/popover/popover_header_footer.vue.cjs +4 -4
  79. package/dist/vue2/components/popover/popover_header_footer.vue.cjs.map +1 -1
  80. package/dist/vue2/components/popover/popover_header_footer.vue.js +4 -4
  81. package/dist/vue2/components/popover/popover_header_footer.vue.js.map +1 -1
  82. package/dist/vue2/dialtone-vue.cjs +0 -3
  83. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  84. package/dist/vue2/dialtone-vue.js +2 -5
  85. package/dist/vue2/lib/general-row.cjs +0 -1
  86. package/dist/vue2/lib/general-row.cjs.map +1 -1
  87. package/dist/vue2/lib/general-row.js +1 -2
  88. package/dist/vue2/lib/keyboard-shortcut.cjs +0 -2
  89. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
  90. package/dist/vue2/lib/keyboard-shortcut.js +2 -4
  91. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -5
  92. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  93. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -5
  94. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  95. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs +25 -5
  96. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  97. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js +26 -6
  98. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  99. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +5 -4
  100. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  101. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +5 -4
  102. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  103. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +3 -3
  104. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  105. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +3 -3
  106. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  107. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs +35 -22
  108. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  109. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js +35 -22
  110. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  111. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +7 -6
  112. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  113. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +7 -6
  114. package/dist/vue2/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  115. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +9 -17
  116. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
  117. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +9 -17
  118. package/dist/vue2/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
  119. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +6 -5
  120. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  121. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +6 -5
  122. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  123. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.cjs +22 -11
  124. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  125. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.js +22 -11
  126. package/dist/vue2/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  127. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -6
  128. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  129. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -6
  130. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  131. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.cjs +14 -10
  132. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  133. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.js +14 -10
  134. package/dist/vue2/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  135. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.cjs +6 -3
  136. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  137. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.js +6 -3
  138. package/dist/vue2/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  139. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.cjs +6 -5
  140. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  141. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.js +6 -5
  142. package/dist/vue2/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  143. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs +8 -7
  144. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  145. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js +8 -7
  146. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  147. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
  148. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  149. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js +0 -17
  150. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  151. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +36 -4
  152. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  153. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +37 -5
  154. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  155. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs +3 -3
  156. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  157. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js +3 -3
  158. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  159. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs +4 -3
  160. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  161. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js +4 -3
  162. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  163. package/dist/vue2/style.css +127 -124
  164. package/dist/vue2/types/components/avatar/avatar.vue.d.ts +4 -22
  165. package/dist/vue2/types/components/avatar/avatar.vue.d.ts.map +1 -1
  166. package/dist/vue2/types/components/badge/badge.vue.d.ts +3 -19
  167. package/dist/vue2/types/components/badge/badge.vue.d.ts.map +1 -1
  168. package/dist/vue2/types/components/chip/chip.vue.d.ts.map +1 -1
  169. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  170. package/dist/vue2/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  171. package/dist/vue2/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  172. package/dist/vue2/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts +1 -58
  173. package/dist/vue2/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  174. package/dist/vue2/types/components/empty_state/empty_state_constants.d.ts +27 -0
  175. package/dist/vue2/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  176. package/dist/vue2/types/components/keyboard_shortcut/index.d.ts +1 -1
  177. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +7 -15
  178. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
  179. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  180. package/dist/vue2/types/components/list_item/list_item.vue.d.ts.map +1 -1
  181. package/dist/vue2/types/components/modal/modal.vue.d.ts.map +1 -1
  182. package/dist/vue2/types/components/notice/notice_action.vue.d.ts.map +1 -1
  183. package/dist/vue2/types/components/notice/notice_icon.vue.d.ts +1 -1
  184. package/dist/vue2/types/components/pagination/pagination.vue.d.ts.map +1 -1
  185. package/dist/vue2/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  186. package/dist/vue2/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  187. package/dist/vue2/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  188. package/dist/vue2/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  189. package/dist/vue2/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  190. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +8 -8
  191. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +0 -1
  192. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  193. package/dist/vue2/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +2 -10
  194. package/dist/vue2/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
  195. package/dist/vue2/types/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  196. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +4 -6
  197. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  198. package/dist/vue2/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  199. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -10
  200. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  201. package/dist/vue2/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  202. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +0 -1
  203. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  204. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  205. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  206. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
  207. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  208. package/dist/vue2/types/recipes/leftbar/general_row/index.d.ts +1 -1
  209. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  210. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  211. package/dist/vue2/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  212. package/dist/vue2/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  213. package/dist/vue3/common/sr_only_close_button.vue.cjs +4 -4
  214. package/dist/vue3/common/sr_only_close_button.vue.cjs.map +1 -1
  215. package/dist/vue3/common/sr_only_close_button.vue.js +4 -4
  216. package/dist/vue3/common/sr_only_close_button.vue.js.map +1 -1
  217. package/dist/vue3/component-documentation.json +1 -1
  218. package/dist/vue3/components/avatar/avatar.vue.cjs +30 -41
  219. package/dist/vue3/components/avatar/avatar.vue.cjs.map +1 -1
  220. package/dist/vue3/components/avatar/avatar.vue.js +32 -43
  221. package/dist/vue3/components/avatar/avatar.vue.js.map +1 -1
  222. package/dist/vue3/components/badge/badge.vue.cjs +22 -39
  223. package/dist/vue3/components/badge/badge.vue.cjs.map +1 -1
  224. package/dist/vue3/components/badge/badge.vue.js +23 -40
  225. package/dist/vue3/components/badge/badge.vue.js.map +1 -1
  226. package/dist/vue3/components/chip/chip.vue.cjs +4 -7
  227. package/dist/vue3/components/chip/chip.vue.cjs.map +1 -1
  228. package/dist/vue3/components/chip/chip.vue.js +4 -7
  229. package/dist/vue3/components/chip/chip.vue.js.map +1 -1
  230. package/dist/vue3/components/collapsible/collapsible.vue.cjs +12 -6
  231. package/dist/vue3/components/collapsible/collapsible.vue.cjs.map +1 -1
  232. package/dist/vue3/components/collapsible/collapsible.vue.js +12 -6
  233. package/dist/vue3/components/collapsible/collapsible.vue.js.map +1 -1
  234. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs +5 -17
  235. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  236. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js +5 -17
  237. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  238. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs +4 -9
  239. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  240. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js +5 -10
  241. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  242. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs +11 -14
  243. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  244. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js +12 -15
  245. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  246. package/dist/vue3/components/empty_state/empty_state.vue.cjs +19 -92
  247. package/dist/vue3/components/empty_state/empty_state.vue.cjs.map +1 -1
  248. package/dist/vue3/components/empty_state/empty_state.vue.js +20 -93
  249. package/dist/vue3/components/empty_state/empty_state.vue.js.map +1 -1
  250. package/dist/vue3/components/empty_state/empty_state_constants.cjs +18 -0
  251. package/dist/vue3/components/empty_state/empty_state_constants.cjs.map +1 -1
  252. package/dist/vue3/components/empty_state/empty_state_constants.js +18 -0
  253. package/dist/vue3/components/empty_state/empty_state_constants.js.map +1 -1
  254. package/dist/vue3/components/icon/icon.vue.cjs +2 -2
  255. package/dist/vue3/components/icon/icon.vue.js +2 -2
  256. package/dist/vue3/components/illustration/illustration.vue.cjs +2 -2
  257. package/dist/vue3/components/illustration/illustration.vue.js +2 -2
  258. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs +4 -5
  259. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  260. package/dist/vue3/components/image_viewer/image_viewer.vue.js +4 -5
  261. package/dist/vue3/components/image_viewer/image_viewer.vue.js.map +1 -1
  262. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -11
  263. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  264. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js +23 -10
  265. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  266. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
  267. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  268. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
  269. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  270. package/dist/vue3/components/list_item/list_item.vue.cjs +4 -5
  271. package/dist/vue3/components/list_item/list_item.vue.cjs.map +1 -1
  272. package/dist/vue3/components/list_item/list_item.vue.js +4 -5
  273. package/dist/vue3/components/list_item/list_item.vue.js.map +1 -1
  274. package/dist/vue3/components/modal/modal.vue.cjs +4 -7
  275. package/dist/vue3/components/modal/modal.vue.cjs.map +1 -1
  276. package/dist/vue3/components/modal/modal.vue.js +4 -7
  277. package/dist/vue3/components/modal/modal.vue.js.map +1 -1
  278. package/dist/vue3/components/notice/notice_action.vue.cjs +4 -7
  279. package/dist/vue3/components/notice/notice_action.vue.cjs.map +1 -1
  280. package/dist/vue3/components/notice/notice_action.vue.js +4 -7
  281. package/dist/vue3/components/notice/notice_action.vue.js.map +1 -1
  282. package/dist/vue3/components/notice/notice_icon.vue.cjs +12 -12
  283. package/dist/vue3/components/notice/notice_icon.vue.cjs.map +1 -1
  284. package/dist/vue3/components/notice/notice_icon.vue.js +13 -13
  285. package/dist/vue3/components/notice/notice_icon.vue.js.map +1 -1
  286. package/dist/vue3/components/pagination/pagination.vue.cjs +10 -15
  287. package/dist/vue3/components/pagination/pagination.vue.cjs.map +1 -1
  288. package/dist/vue3/components/pagination/pagination.vue.js +10 -15
  289. package/dist/vue3/components/pagination/pagination.vue.js.map +1 -1
  290. package/dist/vue3/components/popover/popover_header_footer.vue.cjs +4 -7
  291. package/dist/vue3/components/popover/popover_header_footer.vue.cjs.map +1 -1
  292. package/dist/vue3/components/popover/popover_header_footer.vue.js +4 -7
  293. package/dist/vue3/components/popover/popover_header_footer.vue.js.map +1 -1
  294. package/dist/vue3/dialtone-vue.cjs +0 -3
  295. package/dist/vue3/dialtone-vue.cjs.map +1 -1
  296. package/dist/vue3/dialtone-vue.js +2 -5
  297. package/dist/vue3/lib/general-row.cjs +0 -1
  298. package/dist/vue3/lib/general-row.cjs.map +1 -1
  299. package/dist/vue3/lib/general-row.js +1 -2
  300. package/dist/vue3/lib/keyboard-shortcut.cjs +0 -2
  301. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
  302. package/dist/vue3/lib/keyboard-shortcut.js +2 -4
  303. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +4 -5
  304. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  305. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +4 -5
  306. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  307. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs +27 -11
  308. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  309. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js +29 -13
  310. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  311. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +7 -11
  312. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  313. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +7 -11
  314. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  315. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +4 -7
  316. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  317. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +4 -7
  318. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  319. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs +33 -25
  320. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  321. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js +34 -26
  322. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  323. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +14 -7
  324. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  325. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +15 -8
  326. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  327. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +23 -25
  328. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
  329. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +24 -26
  330. package/dist/vue3/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
  331. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +8 -12
  332. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  333. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +8 -12
  334. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  335. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs +29 -18
  336. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  337. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js +29 -18
  338. package/dist/vue3/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  339. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -12
  340. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  341. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -12
  342. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  343. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs +33 -13
  344. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  345. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js +34 -14
  346. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  347. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs +13 -4
  348. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  349. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js +14 -5
  350. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  351. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs +13 -7
  352. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  353. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js +14 -8
  354. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  355. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs +9 -13
  356. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  357. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js +9 -13
  358. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  359. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
  360. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  361. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js +0 -17
  362. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  363. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +39 -11
  364. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  365. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +41 -13
  366. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  367. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs +4 -7
  368. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  369. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js +4 -7
  370. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  371. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs +11 -6
  372. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  373. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js +12 -7
  374. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  375. package/dist/vue3/style.css +127 -124
  376. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +5 -21
  377. package/dist/vue3/types/components/avatar/avatar.vue.d.ts.map +1 -1
  378. package/dist/vue3/types/components/badge/badge.vue.d.ts +8 -13
  379. package/dist/vue3/types/components/badge/badge.vue.d.ts.map +1 -1
  380. package/dist/vue3/types/components/chip/chip.vue.d.ts.map +1 -1
  381. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  382. package/dist/vue3/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  383. package/dist/vue3/types/components/dropdown/dropdown.vue.d.ts +1 -1
  384. package/dist/vue3/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  385. package/dist/vue3/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  386. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts +4 -0
  387. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  388. package/dist/vue3/types/components/empty_state/empty_state_constants.d.ts +27 -0
  389. package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  390. package/dist/vue3/types/components/keyboard_shortcut/index.d.ts +1 -1
  391. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +210 -15
  392. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
  393. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  394. package/dist/vue3/types/components/lazy_show/lazy_show.vue.d.ts +1 -1
  395. package/dist/vue3/types/components/list_item/list_item.vue.d.ts.map +1 -1
  396. package/dist/vue3/types/components/modal/modal.vue.d.ts.map +1 -1
  397. package/dist/vue3/types/components/notice/notice_action.vue.d.ts.map +1 -1
  398. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts +30 -1
  399. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  400. package/dist/vue3/types/components/pagination/pagination.vue.d.ts.map +1 -1
  401. package/dist/vue3/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  402. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +1 -1
  403. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  404. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +30 -1
  405. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  406. package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
  407. package/dist/vue3/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  408. package/dist/vue3/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  409. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +240 -8
  410. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +0 -1
  411. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  412. package/dist/vue3/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +31 -10
  413. package/dist/vue3/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
  414. package/dist/vue3/types/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  415. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +4 -6
  416. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  417. package/dist/vue3/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  418. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -10
  419. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  420. package/dist/vue3/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  421. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +0 -1
  422. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  423. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  424. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  425. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
  426. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  427. package/dist/vue3/types/recipes/leftbar/general_row/index.d.ts +1 -1
  428. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +30 -1
  429. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  430. package/dist/vue3/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  431. package/dist/vue3/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  432. package/package.json +1 -1
  433. package/dist/vue2/common/storybook_utils.cjs +0 -8
  434. package/dist/vue2/common/storybook_utils.cjs.map +0 -1
  435. package/dist/vue2/common/storybook_utils.js +0 -8
  436. package/dist/vue2/common/storybook_utils.js.map +0 -1
  437. package/dist/vue3/common/storybook_utils.cjs +0 -8
  438. package/dist/vue3/common/storybook_utils.cjs.map +0 -1
  439. package/dist/vue3/common/storybook_utils.js +0 -8
  440. package/dist/vue3/common/storybook_utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"callbar_button_with_popover.vue.js","sources":["../../../../recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-popover\"\n >\n <dt-recipe-callbar-button\n :aria-label=\"ariaLabel\"\n :disabled=\"disabled\"\n :active=\"active\"\n :danger=\"danger\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :text-class=\"textClass\"\n class=\"dt-recipe--callbar-button-with-popover--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-popover\n v-if=\"showArrowButton\"\n :id=\"id\"\n :modal=\"false\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"initialFocusElement\"\n :show-close-button=\"showCloseButton\"\n :offset=\"offset\"\n padding=\"none\"\n class=\"dt-recipe--callbar-button-with-popover--popover-wrapper\"\n :dialog-class=\"['dt-recipe--callbar-button-with-popover--popover', contentClass]\"\n header-class=\"d-d-flex d-ai-center d-fw-normal d-px12\"\n v-bind=\"$attrs\"\n :open-popover=\"showPopover\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n circle\n importance=\"clear\"\n size=\"lg\"\n :class=\"['dt-recipe--callbar-button-with-popover--arrow',\n { 'dt-recipe--callbar-button-with-popover--arrow--large': !isCompactMode }]\"\n width=\"2rem\"\n :aria-label=\"arrowButtonLabel\"\n :active=\"open\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon\n name=\"chevron-up\"\n class=\"dt-recipe--callbar-button-with-popover--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n <template #headerContent>\n <slot name=\"headerContent\" />\n </template>\n <template #footerContent>\n <slot name=\"footerContent\" />\n </template>\n </dt-popover>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtIcon } from '@/components/icon';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithPopover',\n\n components: { DtRecipeCallbarButton, DtPopover, DtButton, DtIcon },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * Displaces the content box from its anchor element\n * by the specified number of pixels.\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, 16],\n },\n\n /**\n * The element that is focused when the popover is opened. This can be an\n * HTMLElement within the popover, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: String,\n default: 'first',\n },\n\n /**\n * Determines visibility for close button\n */\n showCloseButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Additional class name for the popover content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * To auto open the modal popover.\n */\n openPopover: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal popover is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showPopover () {\n if (!this.openPopover || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n methods: {\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openPopover;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the popover\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n\n<style lang=\"less\">\n.dt-recipe--callbar-button-with-popover--arrow {\n margin-top: var(--dt-space-350-negative);\n margin-left: calc(var(--dt-space-300-negative) * 5);\n width: var(--dt-size-500);\n height: var(--dt-size-500);\n padding: var(--dt-space-400);\n border-radius: var(--dt-size-300);\n\n &.d-btn--active {\n background: var(--dt-color-surface-moderate-opaque);\n }\n\n &--large {\n margin-left: var(--dt-space-550-negative);\n }\n\n &__icon {\n color: var(--dt-color-black-800);\n }\n}\n\n.dt-recipe--callbar-button-with-popover--popover {\n .d-popover__header {\n background: var(--dt-color-surface-contrast);\n color: var(--dt-color-foreground-primary-inverted);\n\n .d-btn {\n color: var(--dt-color-foreground-primary-inverted);\n }\n }\n}\n\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected::after,\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected:hover::after {\n --tab--bgc: var(--dt-color-surface-contrast);\n}\n.dt-recipe--callbar-button-with-popover--button .tab-group {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dt-recipe--callbar-button-with-popover--button .tab-content {\n flex: 1 1 100%;\n overflow-y: auto;\n}\n\n.dt-recipe--callbar-button-with-popover {\n display: flex;\n align-items: center;\n}\n</style>\n"],"names":["this","_openBlock","_createElementBlock","_createVNode","_renderSlot","_withCtx","_createBlock","_mergeProps","_normalizeClass","_createCommentVNode"],"mappings":";;;;;;;;;AAiFA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY,EAAE,uBAAuB,WAAW,UAAU,OAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlE,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,IAAI;AAAA,MACF,MAAM;AAAA,MACN,UAAW;AACT,eAAO,MAAM;MACd;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,UAAU;AACpB,eAAO,SAASA,SAAK,OAAO;AAAA,MAC7B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,WAAW,CAAC,UAAU;AACpB,eAAO,CAAC,CAAC;AAAA,MACV;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS,MAAM,CAAC,GAAG,EAAE;AAAA,IACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,UAAQ,gCAAgC,SAAS,IAAI;AAAA,IACjE;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,MAAM;AAAA;EAET;AAAA,EAED,UAAU;AAAA,IACR,kBAAmB;AACjB,aAAO,KAAK,kBAAkB,CAAC,KAAK;AAAA,IACrC;AAAA,IAED,gBAAiB;AACf,aAAO,KAAK,oBAAoB,QAAQ,KAAK,oBAAoB;AAAA,IAClE;AAAA,IAED,cAAe;AACb,UAAI,CAAC,KAAK,eAAe,KAAK,MAAM;AAClC,aAAK,cAAa;AAClB,eAAO;AAAA,MACT;AAEA,aAAO,KAAK;IACb;AAAA,EACF;AAAA,EAED,SAAS;AAAA,IACP,WAAY,IAAI;AACd,WAAK,MAAM,eAAe,EAAE;AAC5B,aAAO,KAAK;IACb;AAAA,IAED,aAAc;AACZ,aAAQ,KAAK,OAAO,CAAC,KAAK;AAAA,IAC3B;AAAA,IAED,gBAAiB;AACf,WAAK,OAAO,KAAK;AAAA,IAClB;AAAA,IAED,YAAa,IAAI;AAGf,UAAI,CAAC,KAAK,OAAO,SAAS;AACxB,aAAK,WAAW,EAAE;AAAA,aACb;AACL,aAAK,MAAM,SAAS,EAAE;AAAA,MACxB;AAAA,IACD;AAAA,IAED,gBAAiB,UAAU;AACzB,WAAK,OAAO;AACZ,WAAK,MAAM,UAAU,QAAQ;AAAA,IAC9B;AAAA,EACF;AAEH;AAzVI,MAAA,aAAA,EAAA,OAAM,yCAAwC;;;;;;AADhD,SAAAC,UAAA,GAAAC,mBAsEM,OAtEN,YAsEM;AAAA,IAnEJC,YAkB2B,qCAAA;AAAA,MAjBxB,cAAY,OAAS;AAAA,MACrB,UAAU,OAAQ;AAAA,MAClB,QAAQ,OAAM;AAAA,MACd,QAAQ,OAAM;AAAA,MACd,gBAAc,OAAW;AAAA,MACzB,qBAAmB,OAAe;AAAA,MAClC,cAAY,OAAS;AAAA,MACtB,OAAM;AAAA,MACL,SAAO,SAAW;AAAA;MAER,cACT,MAAoB;AAAA,QAApBC,WAAoB,KAAA,QAAA,MAAA;AAAA;MAEX,iBACT,MAAuB;AAAA,QAAvBA,WAAuB,KAAA,QAAA,SAAA;AAAA;MAnB/B,SAAAC,QAqBM,MAAQ;AAAA,QAARD,WAAQ,KAAA,QAAA,SAAA;AAAA;MArBd,GAAA;AAAA;IAwBY,SAAe,mBADvBH,aAAAK,YA+Ca,uBA/CbC,WA+Ca;AAAA,MAtEjB,KAAA;AAAA,MAyBO,IAAI,OAAE;AAAA,MACN,OAAO;AAAA,MACP,MAAM,MAAI;AAAA,MACV,WAAW,OAAS;AAAA,MACpB,yBAAuB,OAAmB;AAAA,MAC1C,qBAAmB,OAAe;AAAA,MAClC,QAAQ,OAAM;AAAA,MACf,SAAQ;AAAA,MACR,OAAM;AAAA,MACL,oEAAkE,OAAY,YAAA;AAAA,MAC/E,gBAAa;AAAA,OACL,KAAM,QAAA;AAAA,MACb,gBAAc,SAAW;AAAA,MACzB,UAAQ,SAAe;AAAA;MAEb,gBACT,MAkBY;AAAA,QAlBZJ,YAkBY,sBAAA;AAAA,UAjBV,QAAA;AAAA,UACA,YAAW;AAAA,UACX,MAAK;AAAA,UACJ,OA7CXK,eAAA;AAAA,YAAA;AAAA,uEA6CkJ,SAAa,cAAA;AAAA,UAAA,CAAA;AAAA,UAErJ,OAAM;AAAA,UACL,cAAY,OAAgB;AAAA,UAC5B,QAAQ,MAAI;AAAA,UACZ,SAAO,SAAU;AAAA;UAEP,cACT,MAIE;AAAA,YAJFL,YAIE,oBAAA;AAAA,cAHA,MAAK;AAAA,cACL,OAAM;AAAA,cACN,MAAK;AAAA;;UAxDnB,GAAA;AAAA;;MA6DiB,iBACT,MAAuB;AAAA,QAAvBC,WAAuB,KAAA,QAAA,SAAA;AAAA;MAEd,uBACT,MAA6B;AAAA,QAA7BA,WAA6B,KAAA,QAAA,eAAA;AAAA;MAEpB,uBACT,MAA6B;AAAA,QAA7BA,WAA6B,KAAA,QAAA,eAAA;AAAA;MApErC,GAAA;AAAA,+IAAAK,mBAAA,IAAA,IAAA;AAAA;;;"}
1
+ {"version":3,"file":"callbar_button_with_popover.vue.js","sources":["../../../../recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-popover\"\n >\n <dt-recipe-callbar-button\n :aria-label=\"ariaLabel\"\n :disabled=\"disabled\"\n :active=\"active\"\n :danger=\"danger\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :text-class=\"textClass\"\n class=\"dt-recipe--callbar-button-with-popover--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-popover\n v-if=\"showArrowButton\"\n :id=\"id\"\n :modal=\"false\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"initialFocusElement\"\n :show-close-button=\"showCloseButton\"\n :offset=\"offset\"\n padding=\"none\"\n class=\"dt-recipe--callbar-button-with-popover--popover-wrapper\"\n :dialog-class=\"['dt-recipe--callbar-button-with-popover--popover', contentClass]\"\n header-class=\"d-d-flex d-ai-center d-fw-normal d-px12\"\n v-bind=\"$attrs\"\n :open-popover=\"showPopover\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n circle\n importance=\"clear\"\n size=\"lg\"\n :class=\"['dt-recipe--callbar-button-with-popover--arrow',\n { 'dt-recipe--callbar-button-with-popover--arrow--large': !isCompactMode }]\"\n width=\"2rem\"\n :aria-label=\"arrowButtonLabel\"\n :active=\"open\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon-chevron-up\n class=\"dt-recipe--callbar-button-with-popover--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n <template #headerContent>\n <slot name=\"headerContent\" />\n </template>\n <template #footerContent>\n <slot name=\"footerContent\" />\n </template>\n </dt-popover>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtIconChevronUp } from '@dialpad/dialtone-icons/vue3';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithPopover',\n\n components: { DtRecipeCallbarButton, DtPopover, DtButton, DtIconChevronUp },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * Displaces the content box from its anchor element\n * by the specified number of pixels.\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, 16],\n },\n\n /**\n * The element that is focused when the popover is opened. This can be an\n * HTMLElement within the popover, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: String,\n default: 'first',\n },\n\n /**\n * Determines visibility for close button\n */\n showCloseButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Additional class name for the popover content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * To auto open the modal popover.\n */\n openPopover: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal popover is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showPopover () {\n if (!this.openPopover || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n methods: {\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openPopover;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the popover\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n\n<style lang=\"less\">\n.dt-recipe--callbar-button-with-popover--arrow {\n margin-top: var(--dt-space-350-negative);\n margin-left: calc(var(--dt-space-300-negative) * 5);\n width: var(--dt-size-500);\n height: var(--dt-size-500);\n padding: var(--dt-space-400);\n border-radius: var(--dt-size-300);\n\n &.d-btn--active {\n background: var(--dt-color-surface-moderate-opaque);\n }\n\n &--large {\n margin-left: var(--dt-space-550-negative);\n }\n\n &__icon {\n color: var(--dt-color-black-800);\n }\n}\n\n.dt-recipe--callbar-button-with-popover--popover {\n .d-popover__header {\n background: var(--dt-color-surface-contrast);\n color: var(--dt-color-foreground-primary-inverted);\n\n .d-btn {\n color: var(--dt-color-foreground-primary-inverted);\n }\n }\n}\n\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected::after,\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected:hover::after {\n --tab--bgc: var(--dt-color-surface-contrast);\n}\n.dt-recipe--callbar-button-with-popover--button .tab-group {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dt-recipe--callbar-button-with-popover--button .tab-content {\n flex: 1 1 100%;\n overflow-y: auto;\n}\n\n.dt-recipe--callbar-button-with-popover {\n display: flex;\n align-items: center;\n}\n</style>\n"],"names":["this","_openBlock","_createElementBlock","_createVNode","_renderSlot","_withCtx","_createBlock","_mergeProps","_normalizeClass","_createCommentVNode"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ const vue3 = require("@dialpad/dialtone-icons/vue3");
2
3
  const ivr_node_constants = require("./ivr_node_constants.cjs");
3
4
  const vue = require("vue");
4
5
  ;/* empty css */
@@ -6,14 +7,33 @@ const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-he
6
7
  const card = require("../../../components/card/card.vue.cjs");
7
8
  const button = require("../../../components/button/button.vue.cjs");
8
9
  const dropdown = require("../../../components/dropdown/dropdown.vue.cjs");
9
- const icon = require("../../../components/icon/icon.vue.cjs");
10
+ const typeToIcon = /* @__PURE__ */ new Map([
11
+ [ivr_node_constants.IVR_NODE_PROMPT_MENU, vue3.DtIconKeypad],
12
+ [ivr_node_constants.IVR_NODE_PROMPT_COLLECT, vue3.DtIconDialer],
13
+ [ivr_node_constants.IVR_NODE_PROMPT_PLAY, vue3.DtIconVolume2],
14
+ [ivr_node_constants.IVR_NODE_EXPERT, vue3.DtIconExpertNode],
15
+ [ivr_node_constants.IVR_NODE_BRANCH, vue3.DtIconBranch],
16
+ [ivr_node_constants.IVR_NODE_GO_TO, vue3.DtIconCallMerge],
17
+ [ivr_node_constants.IVR_NODE_ASSIGN, vue3.DtIconChevronsRight],
18
+ [ivr_node_constants.IVR_NODE_TRANSFER, vue3.DtIconTransfer],
19
+ [ivr_node_constants.IVR_NODE_HANGUP, vue3.DtIconPhoneHangUp]
20
+ ]);
10
21
  const _sfc_main = {
11
22
  name: "DtRecipeIvrNode",
12
23
  components: {
13
24
  DtCard: card,
14
25
  DtButton: button,
15
26
  DtDropdown: dropdown,
16
- DtIcon: icon
27
+ DtIconKeypad: vue3.DtIconKeypad,
28
+ DtIconDialer: vue3.DtIconDialer,
29
+ DtIconVolume2: vue3.DtIconVolume2,
30
+ DtIconExpertNode: vue3.DtIconExpertNode,
31
+ DtIconBranch: vue3.DtIconBranch,
32
+ DtIconCallMerge: vue3.DtIconCallMerge,
33
+ DtIconChevronsRight: vue3.DtIconChevronsRight,
34
+ DtIconTransfer: vue3.DtIconTransfer,
35
+ DtIconPhoneHangUp: vue3.DtIconPhoneHangUp,
36
+ DtIconMoreVertical: vue3.DtIconMoreVertical
17
37
  },
18
38
  props: {
19
39
  /**
@@ -73,7 +93,7 @@ const _sfc_main = {
73
93
  };
74
94
  },
75
95
  nodeIcon() {
76
- return ivr_node_constants.IVR_NODE_ICON_TYPES[this.nodeType];
96
+ return typeToIcon.get(this.nodeType);
77
97
  },
78
98
  headerColor() {
79
99
  const { normal, selected } = ivr_node_constants.IVR_NODE_COLOR_MAPPING[this.nodeType];
@@ -96,8 +116,8 @@ const _hoisted_2 = {
96
116
  };
97
117
  const _hoisted_3 = { class: "ivr_node__dropdown-list" };
98
118
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
99
- const _component_dt_icon = vue.resolveComponent("dt-icon");
100
119
  const _component_dt_button = vue.resolveComponent("dt-button");
120
+ const _component_dt_icon_more_vertical = vue.resolveComponent("dt-icon-more-vertical");
101
121
  const _component_dt_dropdown = vue.resolveComponent("dt-dropdown");
102
122
  const _component_dt_card = vue.resolveComponent("dt-card");
103
123
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ class: "ivr_node" }, vue.toHandlers($options.nodeListeners, true)), [
@@ -137,11 +157,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
137
157
  "data-qa": "dt-ivr-node-icon"
138
158
  }, {
139
159
  icon: vue.withCtx(() => [
140
- vue.createVNode(_component_dt_icon, {
141
- name: $options.nodeIcon,
160
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($options.nodeIcon), {
142
161
  size: "200",
143
162
  class: vue.normalizeClass(["", { "ivr_node__goto_icon": $options.isGotoNode }])
144
- }, null, 8, ["name", "class"])
163
+ }, null, 8, ["class"]))
145
164
  ]),
146
165
  _: 1
147
166
  }, 8, ["aria-label"]),
@@ -160,10 +179,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
160
179
  onClick: vue.withModifiers($options.openMenu, ["stop", "prevent"])
161
180
  }, {
162
181
  icon: vue.withCtx(() => [
163
- vue.createVNode(_component_dt_icon, {
164
- name: "more-vertical",
165
- size: "200"
166
- })
182
+ vue.createVNode(_component_dt_icon_more_vertical, { size: "200" })
167
183
  ]),
168
184
  _: 1
169
185
  }, 8, ["aria-label", "onClick"])
@@ -1 +1 @@
1
- {"version":3,"file":"ivr_node.vue.cjs","sources":["../../../../recipes/cards/ivr_node/ivr_node.vue"],"sourcesContent":["<template>\n <div\n class=\"ivr_node\"\n v-on=\"nodeListeners\"\n >\n <div\n v-if=\"dtmfKey\"\n data-qa=\"dt-top-connector-dtmf\"\n class=\"ivr-connector ivr-connector--dtmf\"\n :class=\"{ 'ivr-connector--dtmf--selected': isSelected }\"\n >\n {{ dtmfKey }}\n </div>\n <slot\n v-if=\"$slots.connector\"\n name=\"connector\"\n />\n <div\n v-if=\"!dtmfKey && !$slots.connector\"\n data-qa=\"dt-top-connector\"\n class=\"ivr-connector\"\n :class=\"{ 'ivr-connector--selected': isSelected }\"\n />\n <dt-card\n content-class=\"d-bt d-bc-black-300 d-px12 d-pt8 d-pb12\"\n :container-class=\"[\n 'd-w100p',\n { 'd-ba d-bar8 d-baw4': isSelected },\n headerColor,\n ]\"\n :header-class=\"[\n 'd-mtn1',\n 'd-bt',\n 'd-btw4',\n 'd-p0',\n headerColor,\n { 'd-btr4': !isSelected },\n ]\"\n >\n <template #header>\n <!-- node label and icon section on left of the header -->\n <div class=\"ivr_node__header-left\">\n <dt-button\n :aria-label=\"nodeType\"\n importance=\"clear\"\n kind=\"muted\"\n data-qa=\"dt-ivr-node-icon\"\n >\n <template #icon>\n <dt-icon\n :name=\"nodeIcon\"\n size=\"200\"\n :class=\"['', { 'ivr_node__goto_icon': isGotoNode }]\"\n />\n </template>\n </dt-button>\n <p\n class=\"ivr_node__label\"\n data-qa=\"ivr-node-label\"\n >\n {{ nodeLabel }}\n </p>\n </div>\n <!-- node menu for actions like edit, copy, delete -->\n <dt-dropdown\n v-model:open=\"isOpen\"\n placement=\"bottom\"\n >\n <template #anchor>\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-label=\"menuButtonAriaLabel\"\n @click.stop.prevent=\"openMenu\"\n >\n <template #icon>\n <dt-icon\n name=\"more-vertical\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <div class=\"ivr_node__dropdown-list\">\n <slot\n name=\"menuItems\"\n :close=\"close\"\n />\n </div>\n </template>\n </dt-dropdown>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n </dt-card>\n </div>\n</template>\n\n<script>\nimport { DtCard } from '@/components/card';\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIcon } from '@/components/icon';\nimport {\n IVR_NODE_ICON_TYPES, IVR_NODE_COLOR_MAPPING, IVR_NODE_GO_TO,\n} from './ivr_node_constants';\n\nexport default {\n name: 'DtRecipeIvrNode',\n\n components: {\n DtCard,\n DtButton,\n DtDropdown,\n DtIcon,\n },\n\n props: {\n\n /**\n * type of IVR Node.\n */\n nodeType: {\n type: String,\n required: true,\n },\n\n /**\n * Descriptive label for the node name.\n */\n\n nodeLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Selected state of the node\n */\n isSelected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Translated aria-label for header menu button\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * DTMF input\n */\n dtmfKey: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Add node click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n isOpen: false,\n };\n },\n\n computed: {\n nodeListeners () {\n return {\n click: (e) => this.$emit('click', e),\n };\n },\n\n nodeIcon () {\n return IVR_NODE_ICON_TYPES[this.nodeType];\n },\n\n headerColor () {\n const { normal, selected } = IVR_NODE_COLOR_MAPPING[this.nodeType];\n return this.isSelected ? selected : normal;\n },\n\n isGotoNode () {\n return this.nodeType === IVR_NODE_GO_TO;\n },\n },\n\n methods: {\n openMenu () {\n this.isOpen = true;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.ivr_node {\n width: 280px;\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n\n &__header-left {\n display: flex;\n align-items: center;\n }\n\n &__label {\n font-size: var(--dt-font-size-200);\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__dropdown-list {\n width: var(--dt-size-825);\n }\n}\n\n.ivr_node__goto_icon {\n transform: rotate(90deg);\n}\n\n.ivr-connector {\n z-index: var(--zi-base);\n display: flex;\n justify-content: center;\n align-items: center;\n border-color: var(--dt-color-purple-600);\n background-color: var(--dt-color-purple-600);\n width: var(--dt-size-400);\n height: var(--dt-size-400);\n border-radius: var(--dt-size-radius-circle);\n margin-bottom: var(--dt-space-300-negative);\n\n &--selected {\n margin-bottom: var(--dt-space-400-negative);\n }\n\n &.ivr-connector--dtmf {\n width: var(--dt-size-550);\n height: var(--dt-size-550);\n margin-bottom: var(--dt-space-450-negative);\n color: var(--dt-color-neutral-white);\n font-size: var(--dt-font-size-200);\n\n &--selected {\n margin-bottom: var(--dt-space-500-negative);\n }\n }\n}\n</style>\n"],"names":["DtCard","DtButton","DtDropdown","DtIcon","IVR_NODE_ICON_TYPES","IVR_NODE_COLOR_MAPPING","IVR_NODE_GO_TO","_createElementBlock","_mergeProps","_toHandlers","_normalizeClass","_createCommentVNode","_renderSlot","_createVNode","_createElementVNode","_toDisplayString","_withModifiers","_withCtx"],"mappings":"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"}
1
+ {"version":3,"file":"ivr_node.vue.cjs","sources":["../../../../recipes/cards/ivr_node/ivr_node.vue"],"sourcesContent":["<template>\n <div\n class=\"ivr_node\"\n v-on=\"nodeListeners\"\n >\n <div\n v-if=\"dtmfKey\"\n data-qa=\"dt-top-connector-dtmf\"\n class=\"ivr-connector ivr-connector--dtmf\"\n :class=\"{ 'ivr-connector--dtmf--selected': isSelected }\"\n >\n {{ dtmfKey }}\n </div>\n <slot\n v-if=\"$slots.connector\"\n name=\"connector\"\n />\n <div\n v-if=\"!dtmfKey && !$slots.connector\"\n data-qa=\"dt-top-connector\"\n class=\"ivr-connector\"\n :class=\"{ 'ivr-connector--selected': isSelected }\"\n />\n <dt-card\n content-class=\"d-bt d-bc-black-300 d-px12 d-pt8 d-pb12\"\n :container-class=\"[\n 'd-w100p',\n { 'd-ba d-bar8 d-baw4': isSelected },\n headerColor,\n ]\"\n :header-class=\"[\n 'd-mtn1',\n 'd-bt',\n 'd-btw4',\n 'd-p0',\n headerColor,\n { 'd-btr4': !isSelected },\n ]\"\n >\n <template #header>\n <!-- node label and icon section on left of the header -->\n <div class=\"ivr_node__header-left\">\n <dt-button\n :aria-label=\"nodeType\"\n importance=\"clear\"\n kind=\"muted\"\n data-qa=\"dt-ivr-node-icon\"\n >\n <template #icon>\n <component\n :is=\"nodeIcon\"\n size=\"200\"\n :class=\"['', { 'ivr_node__goto_icon': isGotoNode }]\"\n />\n </template>\n </dt-button>\n <p\n class=\"ivr_node__label\"\n data-qa=\"ivr-node-label\"\n >\n {{ nodeLabel }}\n </p>\n </div>\n <!-- node menu for actions like edit, copy, delete -->\n <dt-dropdown\n v-model:open=\"isOpen\"\n placement=\"bottom\"\n >\n <template #anchor>\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-label=\"menuButtonAriaLabel\"\n @click.stop.prevent=\"openMenu\"\n >\n <template #icon>\n <dt-icon-more-vertical size=\"200\" />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <div class=\"ivr_node__dropdown-list\">\n <slot\n name=\"menuItems\"\n :close=\"close\"\n />\n </div>\n </template>\n </dt-dropdown>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n </dt-card>\n </div>\n</template>\n\n<script>\nimport { DtCard } from '@/components/card';\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport {\n DtIconKeypad,\n DtIconDialer,\n DtIconVolume2,\n DtIconExpertNode,\n DtIconBranch,\n DtIconCallMerge,\n DtIconChevronsRight,\n DtIconTransfer,\n DtIconPhoneHangUp,\n DtIconMoreVertical,\n} from '@dialpad/dialtone-icons/vue3';\nimport {\n IVR_NODE_COLOR_MAPPING,\n IVR_NODE_PROMPT_MENU,\n IVR_NODE_PROMPT_COLLECT,\n IVR_NODE_PROMPT_PLAY,\n IVR_NODE_EXPERT,\n IVR_NODE_BRANCH,\n IVR_NODE_GO_TO,\n IVR_NODE_ASSIGN,\n IVR_NODE_TRANSFER,\n IVR_NODE_HANGUP,\n} from './ivr_node_constants';\n\nconst typeToIcon = new Map([\n [IVR_NODE_PROMPT_MENU, DtIconKeypad],\n [IVR_NODE_PROMPT_COLLECT, DtIconDialer],\n [IVR_NODE_PROMPT_PLAY, DtIconVolume2],\n [IVR_NODE_EXPERT, DtIconExpertNode],\n [IVR_NODE_BRANCH, DtIconBranch],\n [IVR_NODE_GO_TO, DtIconCallMerge],\n [IVR_NODE_ASSIGN, DtIconChevronsRight],\n [IVR_NODE_TRANSFER, DtIconTransfer],\n [IVR_NODE_HANGUP, DtIconPhoneHangUp],\n]);\n\nexport default {\n name: 'DtRecipeIvrNode',\n\n components: {\n DtCard,\n DtButton,\n DtDropdown,\n DtIconKeypad,\n DtIconDialer,\n DtIconVolume2,\n DtIconExpertNode,\n DtIconBranch,\n DtIconCallMerge,\n DtIconChevronsRight,\n DtIconTransfer,\n DtIconPhoneHangUp,\n DtIconMoreVertical,\n },\n\n props: {\n\n /**\n * type of IVR Node.\n */\n nodeType: {\n type: String,\n required: true,\n },\n\n /**\n * Descriptive label for the node name.\n */\n\n nodeLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Selected state of the node\n */\n isSelected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Translated aria-label for header menu button\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * DTMF input\n */\n dtmfKey: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Add node click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n isOpen: false,\n };\n },\n\n computed: {\n nodeListeners () {\n return {\n click: (e) => this.$emit('click', e),\n };\n },\n\n nodeIcon () {\n return typeToIcon.get(this.nodeType);\n },\n\n headerColor () {\n const { normal, selected } = IVR_NODE_COLOR_MAPPING[this.nodeType];\n return this.isSelected ? selected : normal;\n },\n\n isGotoNode () {\n return this.nodeType === IVR_NODE_GO_TO;\n },\n },\n\n methods: {\n openMenu () {\n this.isOpen = true;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.ivr_node {\n width: 280px;\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n\n &__header-left {\n display: flex;\n align-items: center;\n }\n\n &__label {\n font-size: var(--dt-font-size-200);\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__dropdown-list {\n width: var(--dt-size-825);\n }\n}\n\n.ivr_node__goto_icon {\n transform: rotate(90deg);\n}\n\n.ivr-connector {\n z-index: var(--zi-base);\n display: flex;\n justify-content: center;\n align-items: center;\n border-color: var(--dt-color-purple-600);\n background-color: var(--dt-color-purple-600);\n width: var(--dt-size-400);\n height: var(--dt-size-400);\n border-radius: var(--dt-size-radius-circle);\n margin-bottom: var(--dt-space-300-negative);\n\n &--selected {\n margin-bottom: var(--dt-space-400-negative);\n }\n\n &.ivr-connector--dtmf {\n width: var(--dt-size-550);\n height: var(--dt-size-550);\n margin-bottom: var(--dt-space-450-negative);\n color: var(--dt-color-neutral-white);\n font-size: var(--dt-font-size-200);\n\n &--selected {\n margin-bottom: var(--dt-space-500-negative);\n }\n }\n}\n</style>\n"],"names":["IVR_NODE_PROMPT_MENU","DtIconKeypad","IVR_NODE_PROMPT_COLLECT","DtIconDialer","IVR_NODE_PROMPT_PLAY","DtIconVolume2","IVR_NODE_EXPERT","DtIconExpertNode","IVR_NODE_BRANCH","DtIconBranch","IVR_NODE_GO_TO","DtIconCallMerge","IVR_NODE_ASSIGN","DtIconChevronsRight","IVR_NODE_TRANSFER","DtIconTransfer","IVR_NODE_HANGUP","DtIconPhoneHangUp","DtCard","DtButton","DtDropdown","DtIconMoreVertical","IVR_NODE_COLOR_MAPPING","_createElementBlock","_mergeProps","_toHandlers","_normalizeClass","_createCommentVNode","_renderSlot","_createVNode","_createElementVNode","_createBlock","_resolveDynamicComponent","_toDisplayString","_withModifiers","_withCtx"],"mappings":"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"}
@@ -1,18 +1,38 @@
1
- import { IVR_NODE_ICON_TYPES, IVR_NODE_GO_TO, IVR_NODE_COLOR_MAPPING } from "./ivr_node_constants.js";
2
- import { resolveComponent, openBlock, createElementBlock, mergeProps, toHandlers, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createVNode, withCtx, createElementVNode, withModifiers } from "vue";
1
+ import { DtIconKeypad, DtIconDialer, DtIconVolume2, DtIconExpertNode, DtIconBranch, DtIconCallMerge, DtIconChevronsRight, DtIconTransfer, DtIconPhoneHangUp, DtIconMoreVertical } from "@dialpad/dialtone-icons/vue3";
2
+ import { IVR_NODE_GO_TO, IVR_NODE_PROMPT_MENU, IVR_NODE_PROMPT_COLLECT, IVR_NODE_PROMPT_PLAY, IVR_NODE_EXPERT, IVR_NODE_BRANCH, IVR_NODE_ASSIGN, IVR_NODE_TRANSFER, IVR_NODE_HANGUP, IVR_NODE_COLOR_MAPPING } from "./ivr_node_constants.js";
3
+ import { resolveComponent, openBlock, createElementBlock, mergeProps, toHandlers, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createVNode, withCtx, createElementVNode, createBlock, resolveDynamicComponent, withModifiers } from "vue";
3
4
  /* empty css */
4
5
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
5
6
  import DtCard from "../../../components/card/card.vue.js";
6
7
  import DtButton from "../../../components/button/button.vue.js";
7
8
  import DtDropdown from "../../../components/dropdown/dropdown.vue.js";
8
- import DtIcon from "../../../components/icon/icon.vue.js";
9
+ const typeToIcon = /* @__PURE__ */ new Map([
10
+ [IVR_NODE_PROMPT_MENU, DtIconKeypad],
11
+ [IVR_NODE_PROMPT_COLLECT, DtIconDialer],
12
+ [IVR_NODE_PROMPT_PLAY, DtIconVolume2],
13
+ [IVR_NODE_EXPERT, DtIconExpertNode],
14
+ [IVR_NODE_BRANCH, DtIconBranch],
15
+ [IVR_NODE_GO_TO, DtIconCallMerge],
16
+ [IVR_NODE_ASSIGN, DtIconChevronsRight],
17
+ [IVR_NODE_TRANSFER, DtIconTransfer],
18
+ [IVR_NODE_HANGUP, DtIconPhoneHangUp]
19
+ ]);
9
20
  const _sfc_main = {
10
21
  name: "DtRecipeIvrNode",
11
22
  components: {
12
23
  DtCard,
13
24
  DtButton,
14
25
  DtDropdown,
15
- DtIcon
26
+ DtIconKeypad,
27
+ DtIconDialer,
28
+ DtIconVolume2,
29
+ DtIconExpertNode,
30
+ DtIconBranch,
31
+ DtIconCallMerge,
32
+ DtIconChevronsRight,
33
+ DtIconTransfer,
34
+ DtIconPhoneHangUp,
35
+ DtIconMoreVertical
16
36
  },
17
37
  props: {
18
38
  /**
@@ -72,7 +92,7 @@ const _sfc_main = {
72
92
  };
73
93
  },
74
94
  nodeIcon() {
75
- return IVR_NODE_ICON_TYPES[this.nodeType];
95
+ return typeToIcon.get(this.nodeType);
76
96
  },
77
97
  headerColor() {
78
98
  const { normal, selected } = IVR_NODE_COLOR_MAPPING[this.nodeType];
@@ -95,8 +115,8 @@ const _hoisted_2 = {
95
115
  };
96
116
  const _hoisted_3 = { class: "ivr_node__dropdown-list" };
97
117
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
98
- const _component_dt_icon = resolveComponent("dt-icon");
99
118
  const _component_dt_button = resolveComponent("dt-button");
119
+ const _component_dt_icon_more_vertical = resolveComponent("dt-icon-more-vertical");
100
120
  const _component_dt_dropdown = resolveComponent("dt-dropdown");
101
121
  const _component_dt_card = resolveComponent("dt-card");
102
122
  return openBlock(), createElementBlock("div", mergeProps({ class: "ivr_node" }, toHandlers($options.nodeListeners, true)), [
@@ -136,11 +156,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
136
156
  "data-qa": "dt-ivr-node-icon"
137
157
  }, {
138
158
  icon: withCtx(() => [
139
- createVNode(_component_dt_icon, {
140
- name: $options.nodeIcon,
159
+ (openBlock(), createBlock(resolveDynamicComponent($options.nodeIcon), {
141
160
  size: "200",
142
161
  class: normalizeClass(["", { "ivr_node__goto_icon": $options.isGotoNode }])
143
- }, null, 8, ["name", "class"])
162
+ }, null, 8, ["class"]))
144
163
  ]),
145
164
  _: 1
146
165
  }, 8, ["aria-label"]),
@@ -159,10 +178,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
159
178
  onClick: withModifiers($options.openMenu, ["stop", "prevent"])
160
179
  }, {
161
180
  icon: withCtx(() => [
162
- createVNode(_component_dt_icon, {
163
- name: "more-vertical",
164
- size: "200"
165
- })
181
+ createVNode(_component_dt_icon_more_vertical, { size: "200" })
166
182
  ]),
167
183
  _: 1
168
184
  }, 8, ["aria-label", "onClick"])
@@ -1 +1 @@
1
- {"version":3,"file":"ivr_node.vue.js","sources":["../../../../recipes/cards/ivr_node/ivr_node.vue"],"sourcesContent":["<template>\n <div\n class=\"ivr_node\"\n v-on=\"nodeListeners\"\n >\n <div\n v-if=\"dtmfKey\"\n data-qa=\"dt-top-connector-dtmf\"\n class=\"ivr-connector ivr-connector--dtmf\"\n :class=\"{ 'ivr-connector--dtmf--selected': isSelected }\"\n >\n {{ dtmfKey }}\n </div>\n <slot\n v-if=\"$slots.connector\"\n name=\"connector\"\n />\n <div\n v-if=\"!dtmfKey && !$slots.connector\"\n data-qa=\"dt-top-connector\"\n class=\"ivr-connector\"\n :class=\"{ 'ivr-connector--selected': isSelected }\"\n />\n <dt-card\n content-class=\"d-bt d-bc-black-300 d-px12 d-pt8 d-pb12\"\n :container-class=\"[\n 'd-w100p',\n { 'd-ba d-bar8 d-baw4': isSelected },\n headerColor,\n ]\"\n :header-class=\"[\n 'd-mtn1',\n 'd-bt',\n 'd-btw4',\n 'd-p0',\n headerColor,\n { 'd-btr4': !isSelected },\n ]\"\n >\n <template #header>\n <!-- node label and icon section on left of the header -->\n <div class=\"ivr_node__header-left\">\n <dt-button\n :aria-label=\"nodeType\"\n importance=\"clear\"\n kind=\"muted\"\n data-qa=\"dt-ivr-node-icon\"\n >\n <template #icon>\n <dt-icon\n :name=\"nodeIcon\"\n size=\"200\"\n :class=\"['', { 'ivr_node__goto_icon': isGotoNode }]\"\n />\n </template>\n </dt-button>\n <p\n class=\"ivr_node__label\"\n data-qa=\"ivr-node-label\"\n >\n {{ nodeLabel }}\n </p>\n </div>\n <!-- node menu for actions like edit, copy, delete -->\n <dt-dropdown\n v-model:open=\"isOpen\"\n placement=\"bottom\"\n >\n <template #anchor>\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-label=\"menuButtonAriaLabel\"\n @click.stop.prevent=\"openMenu\"\n >\n <template #icon>\n <dt-icon\n name=\"more-vertical\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <div class=\"ivr_node__dropdown-list\">\n <slot\n name=\"menuItems\"\n :close=\"close\"\n />\n </div>\n </template>\n </dt-dropdown>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n </dt-card>\n </div>\n</template>\n\n<script>\nimport { DtCard } from '@/components/card';\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport { DtIcon } from '@/components/icon';\nimport {\n IVR_NODE_ICON_TYPES, IVR_NODE_COLOR_MAPPING, IVR_NODE_GO_TO,\n} from './ivr_node_constants';\n\nexport default {\n name: 'DtRecipeIvrNode',\n\n components: {\n DtCard,\n DtButton,\n DtDropdown,\n DtIcon,\n },\n\n props: {\n\n /**\n * type of IVR Node.\n */\n nodeType: {\n type: String,\n required: true,\n },\n\n /**\n * Descriptive label for the node name.\n */\n\n nodeLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Selected state of the node\n */\n isSelected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Translated aria-label for header menu button\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * DTMF input\n */\n dtmfKey: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Add node click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n isOpen: false,\n };\n },\n\n computed: {\n nodeListeners () {\n return {\n click: (e) => this.$emit('click', e),\n };\n },\n\n nodeIcon () {\n return IVR_NODE_ICON_TYPES[this.nodeType];\n },\n\n headerColor () {\n const { normal, selected } = IVR_NODE_COLOR_MAPPING[this.nodeType];\n return this.isSelected ? selected : normal;\n },\n\n isGotoNode () {\n return this.nodeType === IVR_NODE_GO_TO;\n },\n },\n\n methods: {\n openMenu () {\n this.isOpen = true;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.ivr_node {\n width: 280px;\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n\n &__header-left {\n display: flex;\n align-items: center;\n }\n\n &__label {\n font-size: var(--dt-font-size-200);\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__dropdown-list {\n width: var(--dt-size-825);\n }\n}\n\n.ivr_node__goto_icon {\n transform: rotate(90deg);\n}\n\n.ivr-connector {\n z-index: var(--zi-base);\n display: flex;\n justify-content: center;\n align-items: center;\n border-color: var(--dt-color-purple-600);\n background-color: var(--dt-color-purple-600);\n width: var(--dt-size-400);\n height: var(--dt-size-400);\n border-radius: var(--dt-size-radius-circle);\n margin-bottom: var(--dt-space-300-negative);\n\n &--selected {\n margin-bottom: var(--dt-space-400-negative);\n }\n\n &.ivr-connector--dtmf {\n width: var(--dt-size-550);\n height: var(--dt-size-550);\n margin-bottom: var(--dt-space-450-negative);\n color: var(--dt-color-neutral-white);\n font-size: var(--dt-font-size-200);\n\n &--selected {\n margin-bottom: var(--dt-space-500-negative);\n }\n }\n}\n</style>\n"],"names":["_createElementBlock","_mergeProps","_toHandlers","_normalizeClass","_createCommentVNode","_renderSlot","_createVNode","_createElementVNode","_toDisplayString","_withModifiers","_withCtx"],"mappings":"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"}
1
+ {"version":3,"file":"ivr_node.vue.js","sources":["../../../../recipes/cards/ivr_node/ivr_node.vue"],"sourcesContent":["<template>\n <div\n class=\"ivr_node\"\n v-on=\"nodeListeners\"\n >\n <div\n v-if=\"dtmfKey\"\n data-qa=\"dt-top-connector-dtmf\"\n class=\"ivr-connector ivr-connector--dtmf\"\n :class=\"{ 'ivr-connector--dtmf--selected': isSelected }\"\n >\n {{ dtmfKey }}\n </div>\n <slot\n v-if=\"$slots.connector\"\n name=\"connector\"\n />\n <div\n v-if=\"!dtmfKey && !$slots.connector\"\n data-qa=\"dt-top-connector\"\n class=\"ivr-connector\"\n :class=\"{ 'ivr-connector--selected': isSelected }\"\n />\n <dt-card\n content-class=\"d-bt d-bc-black-300 d-px12 d-pt8 d-pb12\"\n :container-class=\"[\n 'd-w100p',\n { 'd-ba d-bar8 d-baw4': isSelected },\n headerColor,\n ]\"\n :header-class=\"[\n 'd-mtn1',\n 'd-bt',\n 'd-btw4',\n 'd-p0',\n headerColor,\n { 'd-btr4': !isSelected },\n ]\"\n >\n <template #header>\n <!-- node label and icon section on left of the header -->\n <div class=\"ivr_node__header-left\">\n <dt-button\n :aria-label=\"nodeType\"\n importance=\"clear\"\n kind=\"muted\"\n data-qa=\"dt-ivr-node-icon\"\n >\n <template #icon>\n <component\n :is=\"nodeIcon\"\n size=\"200\"\n :class=\"['', { 'ivr_node__goto_icon': isGotoNode }]\"\n />\n </template>\n </dt-button>\n <p\n class=\"ivr_node__label\"\n data-qa=\"ivr-node-label\"\n >\n {{ nodeLabel }}\n </p>\n </div>\n <!-- node menu for actions like edit, copy, delete -->\n <dt-dropdown\n v-model:open=\"isOpen\"\n placement=\"bottom\"\n >\n <template #anchor>\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-label=\"menuButtonAriaLabel\"\n @click.stop.prevent=\"openMenu\"\n >\n <template #icon>\n <dt-icon-more-vertical size=\"200\" />\n </template>\n </dt-button>\n </template>\n <template #list=\"{ close }\">\n <div class=\"ivr_node__dropdown-list\">\n <slot\n name=\"menuItems\"\n :close=\"close\"\n />\n </div>\n </template>\n </dt-dropdown>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n </dt-card>\n </div>\n</template>\n\n<script>\nimport { DtCard } from '@/components/card';\nimport { DtButton } from '@/components/button';\nimport { DtDropdown } from '@/components/dropdown';\nimport {\n DtIconKeypad,\n DtIconDialer,\n DtIconVolume2,\n DtIconExpertNode,\n DtIconBranch,\n DtIconCallMerge,\n DtIconChevronsRight,\n DtIconTransfer,\n DtIconPhoneHangUp,\n DtIconMoreVertical,\n} from '@dialpad/dialtone-icons/vue3';\nimport {\n IVR_NODE_COLOR_MAPPING,\n IVR_NODE_PROMPT_MENU,\n IVR_NODE_PROMPT_COLLECT,\n IVR_NODE_PROMPT_PLAY,\n IVR_NODE_EXPERT,\n IVR_NODE_BRANCH,\n IVR_NODE_GO_TO,\n IVR_NODE_ASSIGN,\n IVR_NODE_TRANSFER,\n IVR_NODE_HANGUP,\n} from './ivr_node_constants';\n\nconst typeToIcon = new Map([\n [IVR_NODE_PROMPT_MENU, DtIconKeypad],\n [IVR_NODE_PROMPT_COLLECT, DtIconDialer],\n [IVR_NODE_PROMPT_PLAY, DtIconVolume2],\n [IVR_NODE_EXPERT, DtIconExpertNode],\n [IVR_NODE_BRANCH, DtIconBranch],\n [IVR_NODE_GO_TO, DtIconCallMerge],\n [IVR_NODE_ASSIGN, DtIconChevronsRight],\n [IVR_NODE_TRANSFER, DtIconTransfer],\n [IVR_NODE_HANGUP, DtIconPhoneHangUp],\n]);\n\nexport default {\n name: 'DtRecipeIvrNode',\n\n components: {\n DtCard,\n DtButton,\n DtDropdown,\n DtIconKeypad,\n DtIconDialer,\n DtIconVolume2,\n DtIconExpertNode,\n DtIconBranch,\n DtIconCallMerge,\n DtIconChevronsRight,\n DtIconTransfer,\n DtIconPhoneHangUp,\n DtIconMoreVertical,\n },\n\n props: {\n\n /**\n * type of IVR Node.\n */\n nodeType: {\n type: String,\n required: true,\n },\n\n /**\n * Descriptive label for the node name.\n */\n\n nodeLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Selected state of the node\n */\n isSelected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Translated aria-label for header menu button\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * DTMF input\n */\n dtmfKey: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Add node click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n isOpen: false,\n };\n },\n\n computed: {\n nodeListeners () {\n return {\n click: (e) => this.$emit('click', e),\n };\n },\n\n nodeIcon () {\n return typeToIcon.get(this.nodeType);\n },\n\n headerColor () {\n const { normal, selected } = IVR_NODE_COLOR_MAPPING[this.nodeType];\n return this.isSelected ? selected : normal;\n },\n\n isGotoNode () {\n return this.nodeType === IVR_NODE_GO_TO;\n },\n },\n\n methods: {\n openMenu () {\n this.isOpen = true;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.ivr_node {\n width: 280px;\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n\n &__header-left {\n display: flex;\n align-items: center;\n }\n\n &__label {\n font-size: var(--dt-font-size-200);\n font-weight: var(--dt-font-weight-bold);\n }\n\n &__dropdown-list {\n width: var(--dt-size-825);\n }\n}\n\n.ivr_node__goto_icon {\n transform: rotate(90deg);\n}\n\n.ivr-connector {\n z-index: var(--zi-base);\n display: flex;\n justify-content: center;\n align-items: center;\n border-color: var(--dt-color-purple-600);\n background-color: var(--dt-color-purple-600);\n width: var(--dt-size-400);\n height: var(--dt-size-400);\n border-radius: var(--dt-size-radius-circle);\n margin-bottom: var(--dt-space-300-negative);\n\n &--selected {\n margin-bottom: var(--dt-space-400-negative);\n }\n\n &.ivr-connector--dtmf {\n width: var(--dt-size-550);\n height: var(--dt-size-550);\n margin-bottom: var(--dt-space-450-negative);\n color: var(--dt-color-neutral-white);\n font-size: var(--dt-font-size-200);\n\n &--selected {\n margin-bottom: var(--dt-space-500-negative);\n }\n }\n}\n</style>\n"],"names":["_createElementBlock","_mergeProps","_toHandlers","_normalizeClass","_createCommentVNode","_renderSlot","_createVNode","_createElementVNode","_createBlock","_resolveDynamicComponent","_toDisplayString","_withModifiers","_withCtx"],"mappings":"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"}
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
+ const vue3 = require("@dialpad/dialtone-icons/vue3");
2
3
  const image_carousel = require("./media_components/image_carousel.vue.cjs");
3
4
  const vue = require("vue");
4
5
  ;/* empty css */
5
6
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.cjs");
6
7
  const button = require("../../../components/button/button.vue.cjs");
7
- const icon = require("../../../components/icon/icon.vue.cjs");
8
8
  const MEDIA_ITEM_WIDTH = 64;
9
9
  const _sfc_main = {
10
10
  name: "DtRecipeAttachmentCarousel",
11
11
  components: {
12
12
  DtButton: button,
13
- DtIcon: icon,
13
+ DtIconArrowRight: vue3.DtIconArrowRight,
14
+ DtIconArrowLeft: vue3.DtIconArrowLeft,
14
15
  DtImageCarousel: image_carousel
15
16
  },
16
17
  mixins: [],
@@ -123,8 +124,9 @@ const _hoisted_1 = {
123
124
  role: "presentation"
124
125
  };
125
126
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
126
- const _component_dt_icon = vue.resolveComponent("dt-icon");
127
+ const _component_dt_icon_arrow_left = vue.resolveComponent("dt-icon-arrow-left");
127
128
  const _component_dt_button = vue.resolveComponent("dt-button");
129
+ const _component_dt_icon_arrow_right = vue.resolveComponent("dt-icon-arrow-right");
128
130
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
129
131
  $props.mediaList.length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", {
130
132
  key: 0,
@@ -155,10 +157,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
155
157
  onClick: $options.leftScroll
156
158
  }, {
157
159
  icon: vue.withCtx(() => [
158
- vue.createVNode(_component_dt_icon, {
159
- name: "arrow-left",
160
- size: "100"
161
- })
160
+ vue.createVNode(_component_dt_icon_arrow_left, { size: "100" })
162
161
  ]),
163
162
  _: 1
164
163
  }, 8, ["aria-label", "onClick"]), [
@@ -174,10 +173,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
174
173
  onClick: $options.rightScroll
175
174
  }, {
176
175
  icon: vue.withCtx(() => [
177
- vue.createVNode(_component_dt_icon, {
178
- name: "arrow-right",
179
- size: "100"
180
- })
176
+ vue.createVNode(_component_dt_icon_arrow_right, { size: "100" })
181
177
  ]),
182
178
  _: 1
183
179
  }, 8, ["aria-label", "onClick"]), [
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_carousel.vue.cjs","sources":["../../../../recipes/conversation_view/attachment_carousel/attachment_carousel.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-attachment-carousel\"\n role=\"presentation\"\n >\n <ul\n v-if=\"mediaList.length > 0\"\n ref=\"carousel\"\n class=\"dt-attachment-carousel__media-list\"\n @scroll=\"handleScroll\"\n >\n <!-- media list -->\n <component\n :is=\"mediaComponent(mediaItem.type)\"\n v-for=\"(mediaItem, index) in filteredMediaList\"\n :key=\"`media-${index}`\"\n :index=\"index\"\n :media-item=\"mediaItem\"\n :close-aria-label=\"closeAriaLabel\"\n :click-to-open-aria-label=\"clickToOpenAriaLabel\"\n :progressbar-aria-label=\"progressbarAriaLabel\"\n @remove-media=\"removeMediaItem(index)\"\n @focusin=\"onItemFocus\"\n />\n </ul>\n\n <!-- Carousel Arrows -->\n <dt-button\n v-show=\"showLeftArrow\"\n tabindex=\"-1\"\n :aria-label=\"leftArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--left\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"leftScroll\"\n >\n <template #icon>\n <dt-icon\n name=\"arrow-left\"\n size=\"100\"\n />\n </template>\n </dt-button>\n <dt-button\n v-show=\"showRightArrow\"\n tabindex=\"-1\"\n :aria-label=\"rightArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--right\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"rightScroll\"\n >\n <template #icon>\n <dt-icon\n name=\"arrow-right\"\n size=\"100\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtIcon } from '@/components/icon';\nimport { DtButton } from '@/components/button';\n\nimport DtImageCarousel from './media_components/image_carousel.vue';\n\nconst MEDIA_ITEM_WIDTH = 64;\n\nexport default {\n name: 'DtRecipeAttachmentCarousel',\n\n components: {\n DtButton,\n DtIcon,\n DtImageCarousel,\n },\n\n mixins: [],\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * media - object array of media objects\n * @type {Array}\n *\n * Object: {\n * path: String,\n * altText: String | null,\n * }\n */\n mediaList: {\n type: Array,\n default: () => [],\n },\n\n closeAriaLabel: {\n type: String,\n required: true,\n },\n\n clickToOpenAriaLabel: {\n type: String,\n required: true,\n },\n\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n leftArrowAriaLabel: {\n type: String,\n required: true,\n },\n\n rightArrowAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Emitted when popover is shown or hidden\n *\n * @event remove-media\n * @type {Number}\n */\n 'remove-media',\n ],\n\n data () {\n return {\n showCloseButton: {},\n showRightArrow: true,\n showLeftArrow: false,\n isMounted: false,\n };\n },\n\n computed: {\n filteredMediaList () {\n return this.mediaList.filter((mediaItem) => mediaItem.type === 'image' || mediaItem.type === 'video');\n },\n },\n\n mounted: function () {\n this.showLeftArrow = this.$refs.carousel.scrollLeft > 0;\n this.showRightArrow = this.$refs.carousel.scrollWidth > this.$refs.carousel.clientWidth;\n },\n\n methods: {\n onItemFocus (e) {\n e.currentTarget.scrollIntoView({ behavior: 'smooth' });\n },\n\n mediaComponent (type) {\n switch (type) {\n case 'image':\n return 'dt-image-carousel';\n default:\n // unknown media type\n return null;\n }\n },\n\n removeMediaItem (index) {\n // make sure the carousel arrows is updated. 64 is the width of each media item\n this.showRightArrow = this.$refs.carousel.scrollWidth > (this.$refs.carousel.clientWidth + MEDIA_ITEM_WIDTH);\n this.$emit('remove-media', index);\n },\n\n closeButton (val, index) {\n this.showCloseButton[index] = val;\n },\n\n handleScroll () {\n const carousel = this.$refs.carousel;\n this.showLeftArrow = carousel.scrollLeft > 0;\n this.showRightArrow = !((carousel.scrollLeft + carousel.clientWidth) === carousel.scrollWidth);\n },\n\n leftScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft - 100,\n behavior: 'smooth',\n });\n },\n\n rightScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft + 100,\n behavior: 'smooth',\n });\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-attachment-carousel {\n position: relative;\n max-height: 100px;\n width: var(--dt-space-1000);\n}\n\n.dt-attachment-carousel__media-list {\n display: flex;\n flex-direction: row;\n padding-left: 0px;\n overflow-x: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.dt-attachment-carousel__arrow {\n position: absolute;\n opacity: 0;\n\n .dt-attachment-carousel:hover & {\n opacity: 1;\n }\n background-color: var(--dt-color-neutral-white);\n top: var(--dt-space-30-percent);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-100);\n border-color: var(--bc-default);\n}\n.dt-attachment-carousel__arrow--left {\n left: var(--dt-space-300);\n}\n.dt-attachment-carousel__arrow--right {\n right: var(--dt-space-300);\n}\n\n.dt-attachment-carousel__image-viewer {\n height: var(--dt-size-700);\n width: var(--dt-size-700);\n border-radius: var(--br4);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-350);\n border-color: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["DtButton","DtIcon","DtImageCarousel","_openBlock","_createElementBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createCommentVNode","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"attachment_carousel.vue.cjs","sources":["../../../../recipes/conversation_view/attachment_carousel/attachment_carousel.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-attachment-carousel\"\n role=\"presentation\"\n >\n <ul\n v-if=\"mediaList.length > 0\"\n ref=\"carousel\"\n class=\"dt-attachment-carousel__media-list\"\n @scroll=\"handleScroll\"\n >\n <!-- media list -->\n <component\n :is=\"mediaComponent(mediaItem.type)\"\n v-for=\"(mediaItem, index) in filteredMediaList\"\n :key=\"`media-${index}`\"\n :index=\"index\"\n :media-item=\"mediaItem\"\n :close-aria-label=\"closeAriaLabel\"\n :click-to-open-aria-label=\"clickToOpenAriaLabel\"\n :progressbar-aria-label=\"progressbarAriaLabel\"\n @remove-media=\"removeMediaItem(index)\"\n @focusin=\"onItemFocus\"\n />\n </ul>\n\n <!-- Carousel Arrows -->\n <dt-button\n v-show=\"showLeftArrow\"\n tabindex=\"-1\"\n :aria-label=\"leftArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--left\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"leftScroll\"\n >\n <template #icon>\n <dt-icon-arrow-left\n size=\"100\"\n />\n </template>\n </dt-button>\n <dt-button\n v-show=\"showRightArrow\"\n tabindex=\"-1\"\n :aria-label=\"rightArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--right\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"rightScroll\"\n >\n <template #icon>\n <dt-icon-arrow-right\n size=\"100\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtIconArrowRight, DtIconArrowLeft } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\n\nimport DtImageCarousel from './media_components/image_carousel.vue';\n\nconst MEDIA_ITEM_WIDTH = 64;\n\nexport default {\n name: 'DtRecipeAttachmentCarousel',\n\n components: {\n DtButton,\n DtIconArrowRight,\n DtIconArrowLeft,\n DtImageCarousel,\n },\n\n mixins: [],\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * media - object array of media objects\n * @type {Array}\n *\n * Object: {\n * path: String,\n * altText: String | null,\n * }\n */\n mediaList: {\n type: Array,\n default: () => [],\n },\n\n closeAriaLabel: {\n type: String,\n required: true,\n },\n\n clickToOpenAriaLabel: {\n type: String,\n required: true,\n },\n\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n leftArrowAriaLabel: {\n type: String,\n required: true,\n },\n\n rightArrowAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Emitted when popover is shown or hidden\n *\n * @event remove-media\n * @type {Number}\n */\n 'remove-media',\n ],\n\n data () {\n return {\n showCloseButton: {},\n showRightArrow: true,\n showLeftArrow: false,\n isMounted: false,\n };\n },\n\n computed: {\n filteredMediaList () {\n return this.mediaList.filter((mediaItem) => mediaItem.type === 'image' || mediaItem.type === 'video');\n },\n },\n\n mounted: function () {\n this.showLeftArrow = this.$refs.carousel.scrollLeft > 0;\n this.showRightArrow = this.$refs.carousel.scrollWidth > this.$refs.carousel.clientWidth;\n },\n\n methods: {\n onItemFocus (e) {\n e.currentTarget.scrollIntoView({ behavior: 'smooth' });\n },\n\n mediaComponent (type) {\n switch (type) {\n case 'image':\n return 'dt-image-carousel';\n default:\n // unknown media type\n return null;\n }\n },\n\n removeMediaItem (index) {\n // make sure the carousel arrows is updated. 64 is the width of each media item\n this.showRightArrow = this.$refs.carousel.scrollWidth > (this.$refs.carousel.clientWidth + MEDIA_ITEM_WIDTH);\n this.$emit('remove-media', index);\n },\n\n closeButton (val, index) {\n this.showCloseButton[index] = val;\n },\n\n handleScroll () {\n const carousel = this.$refs.carousel;\n this.showLeftArrow = carousel.scrollLeft > 0;\n this.showRightArrow = !((carousel.scrollLeft + carousel.clientWidth) === carousel.scrollWidth);\n },\n\n leftScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft - 100,\n behavior: 'smooth',\n });\n },\n\n rightScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft + 100,\n behavior: 'smooth',\n });\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-attachment-carousel {\n position: relative;\n max-height: 100px;\n width: var(--dt-space-1000);\n}\n\n.dt-attachment-carousel__media-list {\n display: flex;\n flex-direction: row;\n padding-left: 0px;\n overflow-x: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.dt-attachment-carousel__arrow {\n position: absolute;\n opacity: 0;\n\n .dt-attachment-carousel:hover & {\n opacity: 1;\n }\n background-color: var(--dt-color-neutral-white);\n top: var(--dt-space-30-percent);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-100);\n border-color: var(--bc-default);\n}\n.dt-attachment-carousel__arrow--left {\n left: var(--dt-space-300);\n}\n.dt-attachment-carousel__arrow--right {\n right: var(--dt-space-300);\n}\n\n.dt-attachment-carousel__image-viewer {\n height: var(--dt-size-700);\n width: var(--dt-size-700);\n border-radius: var(--br4);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-350);\n border-color: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["DtButton","DtIconArrowRight","DtIconArrowLeft","DtImageCarousel","_openBlock","_createElementBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createCommentVNode","_createVNode"],"mappings":"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"}
@@ -1,15 +1,16 @@
1
+ import { DtIconArrowRight, DtIconArrowLeft } from "@dialpad/dialtone-icons/vue3";
1
2
  import DtImageCarousel from "./media_components/image_carousel.vue.js";
2
3
  import { resolveComponent, openBlock, createElementBlock, Fragment, renderList, createBlock, resolveDynamicComponent, createCommentVNode, withDirectives, createVNode, withCtx, vShow } from "vue";
3
4
  /* empty css */
4
5
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
5
6
  import DtButton from "../../../components/button/button.vue.js";
6
- import DtIcon from "../../../components/icon/icon.vue.js";
7
7
  const MEDIA_ITEM_WIDTH = 64;
8
8
  const _sfc_main = {
9
9
  name: "DtRecipeAttachmentCarousel",
10
10
  components: {
11
11
  DtButton,
12
- DtIcon,
12
+ DtIconArrowRight,
13
+ DtIconArrowLeft,
13
14
  DtImageCarousel
14
15
  },
15
16
  mixins: [],
@@ -122,8 +123,9 @@ const _hoisted_1 = {
122
123
  role: "presentation"
123
124
  };
124
125
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
125
- const _component_dt_icon = resolveComponent("dt-icon");
126
+ const _component_dt_icon_arrow_left = resolveComponent("dt-icon-arrow-left");
126
127
  const _component_dt_button = resolveComponent("dt-button");
128
+ const _component_dt_icon_arrow_right = resolveComponent("dt-icon-arrow-right");
127
129
  return openBlock(), createElementBlock("div", _hoisted_1, [
128
130
  $props.mediaList.length > 0 ? (openBlock(), createElementBlock("ul", {
129
131
  key: 0,
@@ -154,10 +156,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
154
156
  onClick: $options.leftScroll
155
157
  }, {
156
158
  icon: withCtx(() => [
157
- createVNode(_component_dt_icon, {
158
- name: "arrow-left",
159
- size: "100"
160
- })
159
+ createVNode(_component_dt_icon_arrow_left, { size: "100" })
161
160
  ]),
162
161
  _: 1
163
162
  }, 8, ["aria-label", "onClick"]), [
@@ -173,10 +172,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
173
172
  onClick: $options.rightScroll
174
173
  }, {
175
174
  icon: withCtx(() => [
176
- createVNode(_component_dt_icon, {
177
- name: "arrow-right",
178
- size: "100"
179
- })
175
+ createVNode(_component_dt_icon_arrow_right, { size: "100" })
180
176
  ]),
181
177
  _: 1
182
178
  }, 8, ["aria-label", "onClick"]), [
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_carousel.vue.js","sources":["../../../../recipes/conversation_view/attachment_carousel/attachment_carousel.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-attachment-carousel\"\n role=\"presentation\"\n >\n <ul\n v-if=\"mediaList.length > 0\"\n ref=\"carousel\"\n class=\"dt-attachment-carousel__media-list\"\n @scroll=\"handleScroll\"\n >\n <!-- media list -->\n <component\n :is=\"mediaComponent(mediaItem.type)\"\n v-for=\"(mediaItem, index) in filteredMediaList\"\n :key=\"`media-${index}`\"\n :index=\"index\"\n :media-item=\"mediaItem\"\n :close-aria-label=\"closeAriaLabel\"\n :click-to-open-aria-label=\"clickToOpenAriaLabel\"\n :progressbar-aria-label=\"progressbarAriaLabel\"\n @remove-media=\"removeMediaItem(index)\"\n @focusin=\"onItemFocus\"\n />\n </ul>\n\n <!-- Carousel Arrows -->\n <dt-button\n v-show=\"showLeftArrow\"\n tabindex=\"-1\"\n :aria-label=\"leftArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--left\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"leftScroll\"\n >\n <template #icon>\n <dt-icon\n name=\"arrow-left\"\n size=\"100\"\n />\n </template>\n </dt-button>\n <dt-button\n v-show=\"showRightArrow\"\n tabindex=\"-1\"\n :aria-label=\"rightArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--right\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"rightScroll\"\n >\n <template #icon>\n <dt-icon\n name=\"arrow-right\"\n size=\"100\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtIcon } from '@/components/icon';\nimport { DtButton } from '@/components/button';\n\nimport DtImageCarousel from './media_components/image_carousel.vue';\n\nconst MEDIA_ITEM_WIDTH = 64;\n\nexport default {\n name: 'DtRecipeAttachmentCarousel',\n\n components: {\n DtButton,\n DtIcon,\n DtImageCarousel,\n },\n\n mixins: [],\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * media - object array of media objects\n * @type {Array}\n *\n * Object: {\n * path: String,\n * altText: String | null,\n * }\n */\n mediaList: {\n type: Array,\n default: () => [],\n },\n\n closeAriaLabel: {\n type: String,\n required: true,\n },\n\n clickToOpenAriaLabel: {\n type: String,\n required: true,\n },\n\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n leftArrowAriaLabel: {\n type: String,\n required: true,\n },\n\n rightArrowAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Emitted when popover is shown or hidden\n *\n * @event remove-media\n * @type {Number}\n */\n 'remove-media',\n ],\n\n data () {\n return {\n showCloseButton: {},\n showRightArrow: true,\n showLeftArrow: false,\n isMounted: false,\n };\n },\n\n computed: {\n filteredMediaList () {\n return this.mediaList.filter((mediaItem) => mediaItem.type === 'image' || mediaItem.type === 'video');\n },\n },\n\n mounted: function () {\n this.showLeftArrow = this.$refs.carousel.scrollLeft > 0;\n this.showRightArrow = this.$refs.carousel.scrollWidth > this.$refs.carousel.clientWidth;\n },\n\n methods: {\n onItemFocus (e) {\n e.currentTarget.scrollIntoView({ behavior: 'smooth' });\n },\n\n mediaComponent (type) {\n switch (type) {\n case 'image':\n return 'dt-image-carousel';\n default:\n // unknown media type\n return null;\n }\n },\n\n removeMediaItem (index) {\n // make sure the carousel arrows is updated. 64 is the width of each media item\n this.showRightArrow = this.$refs.carousel.scrollWidth > (this.$refs.carousel.clientWidth + MEDIA_ITEM_WIDTH);\n this.$emit('remove-media', index);\n },\n\n closeButton (val, index) {\n this.showCloseButton[index] = val;\n },\n\n handleScroll () {\n const carousel = this.$refs.carousel;\n this.showLeftArrow = carousel.scrollLeft > 0;\n this.showRightArrow = !((carousel.scrollLeft + carousel.clientWidth) === carousel.scrollWidth);\n },\n\n leftScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft - 100,\n behavior: 'smooth',\n });\n },\n\n rightScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft + 100,\n behavior: 'smooth',\n });\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-attachment-carousel {\n position: relative;\n max-height: 100px;\n width: var(--dt-space-1000);\n}\n\n.dt-attachment-carousel__media-list {\n display: flex;\n flex-direction: row;\n padding-left: 0px;\n overflow-x: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.dt-attachment-carousel__arrow {\n position: absolute;\n opacity: 0;\n\n .dt-attachment-carousel:hover & {\n opacity: 1;\n }\n background-color: var(--dt-color-neutral-white);\n top: var(--dt-space-30-percent);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-100);\n border-color: var(--bc-default);\n}\n.dt-attachment-carousel__arrow--left {\n left: var(--dt-space-300);\n}\n.dt-attachment-carousel__arrow--right {\n right: var(--dt-space-300);\n}\n\n.dt-attachment-carousel__image-viewer {\n height: var(--dt-size-700);\n width: var(--dt-size-700);\n border-radius: var(--br4);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-350);\n border-color: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createCommentVNode","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"attachment_carousel.vue.js","sources":["../../../../recipes/conversation_view/attachment_carousel/attachment_carousel.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-attachment-carousel\"\n role=\"presentation\"\n >\n <ul\n v-if=\"mediaList.length > 0\"\n ref=\"carousel\"\n class=\"dt-attachment-carousel__media-list\"\n @scroll=\"handleScroll\"\n >\n <!-- media list -->\n <component\n :is=\"mediaComponent(mediaItem.type)\"\n v-for=\"(mediaItem, index) in filteredMediaList\"\n :key=\"`media-${index}`\"\n :index=\"index\"\n :media-item=\"mediaItem\"\n :close-aria-label=\"closeAriaLabel\"\n :click-to-open-aria-label=\"clickToOpenAriaLabel\"\n :progressbar-aria-label=\"progressbarAriaLabel\"\n @remove-media=\"removeMediaItem(index)\"\n @focusin=\"onItemFocus\"\n />\n </ul>\n\n <!-- Carousel Arrows -->\n <dt-button\n v-show=\"showLeftArrow\"\n tabindex=\"-1\"\n :aria-label=\"leftArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--left\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"leftScroll\"\n >\n <template #icon>\n <dt-icon-arrow-left\n size=\"100\"\n />\n </template>\n </dt-button>\n <dt-button\n v-show=\"showRightArrow\"\n tabindex=\"-1\"\n :aria-label=\"rightArrowAriaLabel\"\n class=\"dt-attachment-carousel__arrow dt-attachment-carousel__arrow--right\"\n circle\n size=\"xs\"\n importance=\"clear\"\n @click=\"rightScroll\"\n >\n <template #icon>\n <dt-icon-arrow-right\n size=\"100\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtIconArrowRight, DtIconArrowLeft } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\n\nimport DtImageCarousel from './media_components/image_carousel.vue';\n\nconst MEDIA_ITEM_WIDTH = 64;\n\nexport default {\n name: 'DtRecipeAttachmentCarousel',\n\n components: {\n DtButton,\n DtIconArrowRight,\n DtIconArrowLeft,\n DtImageCarousel,\n },\n\n mixins: [],\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * media - object array of media objects\n * @type {Array}\n *\n * Object: {\n * path: String,\n * altText: String | null,\n * }\n */\n mediaList: {\n type: Array,\n default: () => [],\n },\n\n closeAriaLabel: {\n type: String,\n required: true,\n },\n\n clickToOpenAriaLabel: {\n type: String,\n required: true,\n },\n\n progressbarAriaLabel: {\n type: String,\n required: true,\n },\n\n leftArrowAriaLabel: {\n type: String,\n required: true,\n },\n\n rightArrowAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Emitted when popover is shown or hidden\n *\n * @event remove-media\n * @type {Number}\n */\n 'remove-media',\n ],\n\n data () {\n return {\n showCloseButton: {},\n showRightArrow: true,\n showLeftArrow: false,\n isMounted: false,\n };\n },\n\n computed: {\n filteredMediaList () {\n return this.mediaList.filter((mediaItem) => mediaItem.type === 'image' || mediaItem.type === 'video');\n },\n },\n\n mounted: function () {\n this.showLeftArrow = this.$refs.carousel.scrollLeft > 0;\n this.showRightArrow = this.$refs.carousel.scrollWidth > this.$refs.carousel.clientWidth;\n },\n\n methods: {\n onItemFocus (e) {\n e.currentTarget.scrollIntoView({ behavior: 'smooth' });\n },\n\n mediaComponent (type) {\n switch (type) {\n case 'image':\n return 'dt-image-carousel';\n default:\n // unknown media type\n return null;\n }\n },\n\n removeMediaItem (index) {\n // make sure the carousel arrows is updated. 64 is the width of each media item\n this.showRightArrow = this.$refs.carousel.scrollWidth > (this.$refs.carousel.clientWidth + MEDIA_ITEM_WIDTH);\n this.$emit('remove-media', index);\n },\n\n closeButton (val, index) {\n this.showCloseButton[index] = val;\n },\n\n handleScroll () {\n const carousel = this.$refs.carousel;\n this.showLeftArrow = carousel.scrollLeft > 0;\n this.showRightArrow = !((carousel.scrollLeft + carousel.clientWidth) === carousel.scrollWidth);\n },\n\n leftScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft - 100,\n behavior: 'smooth',\n });\n },\n\n rightScroll () {\n this.$refs.carousel.scrollTo({\n left: this.$refs.carousel.scrollLeft + 100,\n behavior: 'smooth',\n });\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-attachment-carousel {\n position: relative;\n max-height: 100px;\n width: var(--dt-space-1000);\n}\n\n.dt-attachment-carousel__media-list {\n display: flex;\n flex-direction: row;\n padding-left: 0px;\n overflow-x: scroll;\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.dt-attachment-carousel__arrow {\n position: absolute;\n opacity: 0;\n\n .dt-attachment-carousel:hover & {\n opacity: 1;\n }\n background-color: var(--dt-color-neutral-white);\n top: var(--dt-space-30-percent);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-100);\n border-color: var(--bc-default);\n}\n.dt-attachment-carousel__arrow--left {\n left: var(--dt-space-300);\n}\n.dt-attachment-carousel__arrow--right {\n right: var(--dt-space-300);\n}\n\n.dt-attachment-carousel__image-viewer {\n height: var(--dt-size-700);\n width: var(--dt-size-700);\n border-radius: var(--br4);\n border: var(--dt-space-100) solid;\n border-width: var(--dt-size-350);\n border-color: var(--dt-color-border-subtle);\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent","_createCommentVNode","_createVNode"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
+ const vue3 = require("@dialpad/dialtone-icons/vue3");
2
3
  const progress_bar = require("./progress_bar.vue.cjs");
3
4
  const vue = require("vue");
4
5
  ;/* empty css */
5
6
  const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.cjs");
6
7
  const image_viewer = require("../../../../components/image_viewer/image_viewer.vue.cjs");
7
8
  const button = require("../../../../components/button/button.vue.cjs");
8
- const icon = require("../../../../components/icon/icon.vue.cjs");
9
9
  const _sfc_main = {
10
10
  name: "DtImageCarousel",
11
11
  components: {
12
12
  DtImageViewer: image_viewer,
13
13
  DtButton: button,
14
- DtIcon: icon,
14
+ DtIconClose: vue3.DtIconClose,
15
15
  DtProgressBar: progress_bar
16
16
  },
17
17
  props: {
@@ -56,7 +56,7 @@ const _hoisted_2 = { class: "dt-attachment-image__top-right" };
56
56
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
57
57
  const _component_dt_image_viewer = vue.resolveComponent("dt-image-viewer");
58
58
  const _component_dt_progress_bar = vue.resolveComponent("dt-progress-bar");
59
- const _component_dt_icon = vue.resolveComponent("dt-icon");
59
+ const _component_dt_icon_close = vue.resolveComponent("dt-icon-close");
60
60
  const _component_dt_button = vue.resolveComponent("dt-button");
61
61
  return vue.openBlock(), vue.createElementBlock("li", _hoisted_1, [
62
62
  vue.createVNode(_component_dt_image_viewer, {
@@ -84,10 +84,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
84
84
  onClick: _cache[0] || (_cache[0] = ($event) => $options.removeMediaItem($props.index))
85
85
  }, {
86
86
  icon: vue.withCtx(() => [
87
- vue.createVNode(_component_dt_icon, {
88
- name: "close",
89
- size: "200"
90
- })
87
+ vue.createVNode(_component_dt_icon_close, { size: "200" })
91
88
  ]),
92
89
  _: 1
93
90
  }, 8, ["id", "aria-label"])