@dialpad/dialtone 9.72.1 → 9.73.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/dist/tokens/doc.json +13931 -13931
  2. package/dist/vue2/common/sr_only_close_button.vue.cjs +3 -3
  3. package/dist/vue2/common/sr_only_close_button.vue.cjs.map +1 -1
  4. package/dist/vue2/common/sr_only_close_button.vue.js +3 -3
  5. package/dist/vue2/common/sr_only_close_button.vue.js.map +1 -1
  6. package/dist/vue2/component-documentation.json +1 -1
  7. package/dist/vue2/components/badge/badge.vue.cjs +13 -34
  8. package/dist/vue2/components/badge/badge.vue.cjs.map +1 -1
  9. package/dist/vue2/components/badge/badge.vue.js +13 -34
  10. package/dist/vue2/components/badge/badge.vue.js.map +1 -1
  11. package/dist/vue2/components/chip/chip.vue.cjs +4 -4
  12. package/dist/vue2/components/chip/chip.vue.cjs.map +1 -1
  13. package/dist/vue2/components/chip/chip.vue.js +4 -4
  14. package/dist/vue2/components/chip/chip.vue.js.map +1 -1
  15. package/dist/vue2/components/collapsible/collapsible.vue.cjs +4 -3
  16. package/dist/vue2/components/collapsible/collapsible.vue.cjs.map +1 -1
  17. package/dist/vue2/components/collapsible/collapsible.vue.js +4 -3
  18. package/dist/vue2/components/collapsible/collapsible.vue.js.map +1 -1
  19. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs +14 -6
  20. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  21. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js +14 -6
  22. package/dist/vue2/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  23. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs +6 -5
  24. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  25. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js +6 -5
  26. package/dist/vue2/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  27. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs +23 -14
  28. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  29. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js +23 -14
  30. package/dist/vue2/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  31. package/dist/vue2/components/empty_state/empty_state.vue.cjs +20 -80
  32. package/dist/vue2/components/empty_state/empty_state.vue.cjs.map +1 -1
  33. package/dist/vue2/components/empty_state/empty_state.vue.js +21 -81
  34. package/dist/vue2/components/empty_state/empty_state.vue.js.map +1 -1
  35. package/dist/vue2/components/empty_state/empty_state_constants.cjs +18 -0
  36. package/dist/vue2/components/empty_state/empty_state_constants.cjs.map +1 -1
  37. package/dist/vue2/components/empty_state/empty_state_constants.js +18 -0
  38. package/dist/vue2/components/empty_state/empty_state_constants.js.map +1 -1
  39. package/dist/vue2/components/illustration/illustration.vue.cjs +2 -2
  40. package/dist/vue2/components/illustration/illustration.vue.js +2 -2
  41. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs +4 -4
  42. package/dist/vue2/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  43. package/dist/vue2/components/image_viewer/image_viewer.vue.js +4 -4
  44. package/dist/vue2/components/image_viewer/image_viewer.vue.js.map +1 -1
  45. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -9
  46. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  47. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js +22 -7
  48. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  49. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
  50. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  51. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
  52. package/dist/vue2/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  53. package/dist/vue2/components/list_item/list_item.vue.cjs +3 -3
  54. package/dist/vue2/components/list_item/list_item.vue.cjs.map +1 -1
  55. package/dist/vue2/components/list_item/list_item.vue.js +3 -3
  56. package/dist/vue2/components/list_item/list_item.vue.js.map +1 -1
  57. package/dist/vue2/components/modal/modal.vue.cjs +4 -4
  58. package/dist/vue2/components/modal/modal.vue.cjs.map +1 -1
  59. package/dist/vue2/components/modal/modal.vue.js +4 -4
  60. package/dist/vue2/components/modal/modal.vue.js.map +1 -1
  61. package/dist/vue2/components/notice/notice_action.vue.cjs +4 -4
  62. package/dist/vue2/components/notice/notice_action.vue.cjs.map +1 -1
  63. package/dist/vue2/components/notice/notice_action.vue.js +4 -4
  64. package/dist/vue2/components/notice/notice_action.vue.js.map +1 -1
  65. package/dist/vue2/components/notice/notice_icon.vue.cjs +12 -8
  66. package/dist/vue2/components/notice/notice_icon.vue.cjs.map +1 -1
  67. package/dist/vue2/components/notice/notice_icon.vue.js +12 -8
  68. package/dist/vue2/components/notice/notice_icon.vue.js.map +1 -1
  69. package/dist/vue2/components/pagination/pagination.vue.cjs +11 -5
  70. package/dist/vue2/components/pagination/pagination.vue.cjs.map +1 -1
  71. package/dist/vue2/components/pagination/pagination.vue.js +11 -5
  72. package/dist/vue2/components/pagination/pagination.vue.js.map +1 -1
  73. package/dist/vue2/components/popover/popover_header_footer.vue.cjs +4 -4
  74. package/dist/vue2/components/popover/popover_header_footer.vue.cjs.map +1 -1
  75. package/dist/vue2/components/popover/popover_header_footer.vue.js +4 -4
  76. package/dist/vue2/components/popover/popover_header_footer.vue.js.map +1 -1
  77. package/dist/vue2/components/rich_text_editor/extensions/emoji/emoji.cjs +38 -40
  78. package/dist/vue2/components/rich_text_editor/extensions/emoji/emoji.cjs.map +1 -1
  79. package/dist/vue2/components/rich_text_editor/extensions/emoji/emoji.js +40 -42
  80. package/dist/vue2/components/rich_text_editor/extensions/emoji/emoji.js.map +1 -1
  81. package/dist/vue2/components/rich_text_editor/extensions/emoji/index.cjs +3 -1
  82. package/dist/vue2/components/rich_text_editor/extensions/emoji/index.cjs.map +1 -1
  83. package/dist/vue2/components/rich_text_editor/extensions/emoji/index.js +1 -0
  84. package/dist/vue2/components/rich_text_editor/extensions/emoji/suggestion.cjs +0 -4
  85. package/dist/vue2/components/rich_text_editor/extensions/emoji/suggestion.cjs.map +1 -1
  86. package/dist/vue2/components/rich_text_editor/extensions/emoji/suggestion.js +0 -4
  87. package/dist/vue2/components/rich_text_editor/extensions/emoji/suggestion.js.map +1 -1
  88. package/dist/vue2/dialtone-vue.cjs +0 -3
  89. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  90. package/dist/vue2/dialtone-vue.js +2 -5
  91. package/dist/vue2/lib/general-row.cjs +0 -1
  92. package/dist/vue2/lib/general-row.cjs.map +1 -1
  93. package/dist/vue2/lib/general-row.js +1 -2
  94. package/dist/vue2/lib/keyboard-shortcut.cjs +0 -2
  95. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
  96. package/dist/vue2/lib/keyboard-shortcut.js +2 -4
  97. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -5
  98. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  99. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -5
  100. package/dist/vue2/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  101. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs +25 -5
  102. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  103. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js +26 -6
  104. package/dist/vue2/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  105. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +5 -4
  106. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  107. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +5 -4
  108. package/dist/vue2/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  109. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +3 -3
  110. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  111. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +3 -3
  112. package/dist/vue2/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  113. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs +35 -22
  114. package/dist/vue2/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  115. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js +35 -22
  116. package/dist/vue2/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  117. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +3 -3
  118. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  119. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +3 -3
  120. package/dist/vue2/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  121. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -6
  122. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  123. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -6
  124. package/dist/vue2/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  125. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs +8 -7
  126. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  127. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js +8 -7
  128. package/dist/vue2/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  129. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
  130. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  131. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js +0 -17
  132. package/dist/vue2/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  133. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +36 -4
  134. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  135. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +37 -5
  136. package/dist/vue2/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  137. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs +3 -3
  138. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  139. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js +3 -3
  140. package/dist/vue2/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  141. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs +4 -3
  142. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  143. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js +4 -3
  144. package/dist/vue2/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  145. package/dist/vue2/style.css +62 -62
  146. package/dist/vue2/types/components/badge/badge.vue.d.ts +16 -45
  147. package/dist/vue2/types/components/badge/badge.vue.d.ts.map +1 -1
  148. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  149. package/dist/vue2/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts +1 -67
  150. package/dist/vue2/types/components/empty_state/empty_state_constants.d.ts +27 -0
  151. package/dist/vue2/types/components/keyboard_shortcut/index.d.ts +1 -1
  152. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +7 -15
  153. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  154. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
  155. package/dist/vue2/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  156. package/dist/vue2/types/components/modal/modal.vue.d.ts +4 -6
  157. package/dist/vue2/types/components/modal/modal.vue.d.ts.map +1 -1
  158. package/dist/vue2/types/components/notice/notice_action.vue.d.ts +5 -4
  159. package/dist/vue2/types/components/notice/notice_action.vue.d.ts.map +1 -1
  160. package/dist/vue2/types/components/notice/notice_icon.vue.d.ts +1 -1
  161. package/dist/vue2/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  162. package/dist/vue2/types/components/pagination/pagination.vue.d.ts.map +1 -1
  163. package/dist/vue2/types/components/rich_text_editor/extensions/channels/channel.d.ts +1 -1
  164. package/dist/vue2/types/components/rich_text_editor/extensions/channels/channel.d.ts.map +1 -1
  165. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/emoji.d.ts +0 -2
  166. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/emoji.d.ts.map +1 -1
  167. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/index.d.ts +1 -0
  168. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/index.d.ts.map +1 -1
  169. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts.map +1 -1
  170. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/mention.d.ts +1 -1
  171. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/mention.d.ts.map +1 -1
  172. package/dist/vue2/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts +1 -1
  173. package/dist/vue2/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts.map +1 -1
  174. package/dist/vue2/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  175. package/dist/vue2/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  176. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +8 -8
  177. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  178. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  179. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
  180. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  181. package/dist/vue2/types/recipes/leftbar/general_row/index.d.ts +1 -1
  182. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  183. package/dist/vue2/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  184. package/dist/vue3/common/sr_only_close_button.vue.cjs +4 -4
  185. package/dist/vue3/common/sr_only_close_button.vue.cjs.map +1 -1
  186. package/dist/vue3/common/sr_only_close_button.vue.js +4 -4
  187. package/dist/vue3/common/sr_only_close_button.vue.js.map +1 -1
  188. package/dist/vue3/component-documentation.json +1 -1
  189. package/dist/vue3/components/avatar/avatar.vue.cjs +30 -41
  190. package/dist/vue3/components/avatar/avatar.vue.cjs.map +1 -1
  191. package/dist/vue3/components/avatar/avatar.vue.js +32 -43
  192. package/dist/vue3/components/avatar/avatar.vue.js.map +1 -1
  193. package/dist/vue3/components/badge/badge.vue.cjs +22 -39
  194. package/dist/vue3/components/badge/badge.vue.cjs.map +1 -1
  195. package/dist/vue3/components/badge/badge.vue.js +23 -40
  196. package/dist/vue3/components/badge/badge.vue.js.map +1 -1
  197. package/dist/vue3/components/chip/chip.vue.cjs +4 -7
  198. package/dist/vue3/components/chip/chip.vue.cjs.map +1 -1
  199. package/dist/vue3/components/chip/chip.vue.js +4 -7
  200. package/dist/vue3/components/chip/chip.vue.js.map +1 -1
  201. package/dist/vue3/components/collapsible/collapsible.vue.cjs +12 -6
  202. package/dist/vue3/components/collapsible/collapsible.vue.cjs.map +1 -1
  203. package/dist/vue3/components/collapsible/collapsible.vue.js +12 -6
  204. package/dist/vue3/components/collapsible/collapsible.vue.js.map +1 -1
  205. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs +5 -17
  206. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  207. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js +5 -17
  208. package/dist/vue3/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  209. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs +4 -9
  210. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  211. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js +5 -10
  212. package/dist/vue3/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  213. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs +11 -14
  214. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  215. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js +12 -15
  216. package/dist/vue3/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  217. package/dist/vue3/components/empty_state/empty_state.vue.cjs +19 -92
  218. package/dist/vue3/components/empty_state/empty_state.vue.cjs.map +1 -1
  219. package/dist/vue3/components/empty_state/empty_state.vue.js +20 -93
  220. package/dist/vue3/components/empty_state/empty_state.vue.js.map +1 -1
  221. package/dist/vue3/components/empty_state/empty_state_constants.cjs +18 -0
  222. package/dist/vue3/components/empty_state/empty_state_constants.cjs.map +1 -1
  223. package/dist/vue3/components/empty_state/empty_state_constants.js +18 -0
  224. package/dist/vue3/components/empty_state/empty_state_constants.js.map +1 -1
  225. package/dist/vue3/components/illustration/illustration.vue.cjs +2 -2
  226. package/dist/vue3/components/illustration/illustration.vue.js +2 -2
  227. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs +4 -5
  228. package/dist/vue3/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  229. package/dist/vue3/components/image_viewer/image_viewer.vue.js +4 -5
  230. package/dist/vue3/components/image_viewer/image_viewer.vue.js.map +1 -1
  231. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -11
  232. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  233. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js +23 -10
  234. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  235. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
  236. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  237. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
  238. package/dist/vue3/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  239. package/dist/vue3/components/list_item/list_item.vue.cjs +4 -5
  240. package/dist/vue3/components/list_item/list_item.vue.cjs.map +1 -1
  241. package/dist/vue3/components/list_item/list_item.vue.js +4 -5
  242. package/dist/vue3/components/list_item/list_item.vue.js.map +1 -1
  243. package/dist/vue3/components/modal/modal.vue.cjs +4 -7
  244. package/dist/vue3/components/modal/modal.vue.cjs.map +1 -1
  245. package/dist/vue3/components/modal/modal.vue.js +4 -7
  246. package/dist/vue3/components/modal/modal.vue.js.map +1 -1
  247. package/dist/vue3/components/notice/notice_action.vue.cjs +4 -7
  248. package/dist/vue3/components/notice/notice_action.vue.cjs.map +1 -1
  249. package/dist/vue3/components/notice/notice_action.vue.js +4 -7
  250. package/dist/vue3/components/notice/notice_action.vue.js.map +1 -1
  251. package/dist/vue3/components/notice/notice_icon.vue.cjs +12 -12
  252. package/dist/vue3/components/notice/notice_icon.vue.cjs.map +1 -1
  253. package/dist/vue3/components/notice/notice_icon.vue.js +13 -13
  254. package/dist/vue3/components/notice/notice_icon.vue.js.map +1 -1
  255. package/dist/vue3/components/pagination/pagination.vue.cjs +10 -15
  256. package/dist/vue3/components/pagination/pagination.vue.cjs.map +1 -1
  257. package/dist/vue3/components/pagination/pagination.vue.js +10 -15
  258. package/dist/vue3/components/pagination/pagination.vue.js.map +1 -1
  259. package/dist/vue3/components/popover/popover_header_footer.vue.cjs +4 -7
  260. package/dist/vue3/components/popover/popover_header_footer.vue.cjs.map +1 -1
  261. package/dist/vue3/components/popover/popover_header_footer.vue.js +4 -7
  262. package/dist/vue3/components/popover/popover_header_footer.vue.js.map +1 -1
  263. package/dist/vue3/components/rich_text_editor/extensions/emoji/emoji.cjs +38 -40
  264. package/dist/vue3/components/rich_text_editor/extensions/emoji/emoji.cjs.map +1 -1
  265. package/dist/vue3/components/rich_text_editor/extensions/emoji/emoji.js +40 -42
  266. package/dist/vue3/components/rich_text_editor/extensions/emoji/emoji.js.map +1 -1
  267. package/dist/vue3/components/rich_text_editor/extensions/emoji/index.cjs +3 -1
  268. package/dist/vue3/components/rich_text_editor/extensions/emoji/index.cjs.map +1 -1
  269. package/dist/vue3/components/rich_text_editor/extensions/emoji/index.js +1 -0
  270. package/dist/vue3/components/rich_text_editor/extensions/emoji/suggestion.cjs +0 -4
  271. package/dist/vue3/components/rich_text_editor/extensions/emoji/suggestion.cjs.map +1 -1
  272. package/dist/vue3/components/rich_text_editor/extensions/emoji/suggestion.js +0 -4
  273. package/dist/vue3/components/rich_text_editor/extensions/emoji/suggestion.js.map +1 -1
  274. package/dist/vue3/dialtone-vue.cjs +0 -3
  275. package/dist/vue3/dialtone-vue.cjs.map +1 -1
  276. package/dist/vue3/dialtone-vue.js +2 -5
  277. package/dist/vue3/lib/general-row.cjs +0 -1
  278. package/dist/vue3/lib/general-row.cjs.map +1 -1
  279. package/dist/vue3/lib/general-row.js +1 -2
  280. package/dist/vue3/lib/keyboard-shortcut.cjs +0 -2
  281. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
  282. package/dist/vue3/lib/keyboard-shortcut.js +2 -4
  283. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +4 -5
  284. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  285. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +4 -5
  286. package/dist/vue3/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  287. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs +27 -11
  288. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  289. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js +29 -13
  290. package/dist/vue3/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  291. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +7 -11
  292. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  293. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +7 -11
  294. package/dist/vue3/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  295. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +4 -7
  296. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  297. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +4 -7
  298. package/dist/vue3/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  299. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs +33 -25
  300. package/dist/vue3/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  301. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js +34 -26
  302. package/dist/vue3/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  303. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +14 -7
  304. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  305. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +15 -8
  306. package/dist/vue3/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  307. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +4 -6
  308. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  309. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +4 -6
  310. package/dist/vue3/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  311. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -12
  312. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  313. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -12
  314. package/dist/vue3/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  315. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs +27 -7
  316. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  317. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js +28 -8
  318. package/dist/vue3/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  319. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs +13 -4
  320. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  321. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js +14 -5
  322. package/dist/vue3/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  323. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs +13 -7
  324. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  325. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js +14 -8
  326. package/dist/vue3/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  327. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs +9 -13
  328. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  329. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js +9 -13
  330. package/dist/vue3/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  331. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
  332. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  333. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js +0 -17
  334. package/dist/vue3/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  335. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +39 -11
  336. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  337. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +41 -13
  338. package/dist/vue3/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  339. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs +4 -7
  340. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  341. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js +4 -7
  342. package/dist/vue3/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  343. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs +11 -6
  344. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  345. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js +12 -7
  346. package/dist/vue3/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  347. package/dist/vue3/style.css +111 -111
  348. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +6 -34
  349. package/dist/vue3/types/components/avatar/avatar.vue.d.ts.map +1 -1
  350. package/dist/vue3/types/components/badge/badge.vue.d.ts +17 -34
  351. package/dist/vue3/types/components/badge/badge.vue.d.ts.map +1 -1
  352. package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
  353. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +1 -1
  354. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  355. package/dist/vue3/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  356. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts +4 -0
  357. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  358. package/dist/vue3/types/components/empty_state/empty_state_constants.d.ts +27 -0
  359. package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  360. package/dist/vue3/types/components/input/input.vue.d.ts +1 -1
  361. package/dist/vue3/types/components/keyboard_shortcut/index.d.ts +1 -1
  362. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +210 -15
  363. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  364. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
  365. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  366. package/dist/vue3/types/components/list_item/list_item.vue.d.ts +2 -8
  367. package/dist/vue3/types/components/list_item/list_item.vue.d.ts.map +1 -1
  368. package/dist/vue3/types/components/notice/notice_action.vue.d.ts +5 -4
  369. package/dist/vue3/types/components/notice/notice_action.vue.d.ts.map +1 -1
  370. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts +30 -1
  371. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  372. package/dist/vue3/types/components/pagination/pagination.vue.d.ts.map +1 -1
  373. package/dist/vue3/types/components/rich_text_editor/extensions/channels/channel.d.ts +1 -1
  374. package/dist/vue3/types/components/rich_text_editor/extensions/channels/channel.d.ts.map +1 -1
  375. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/emoji.d.ts +0 -2
  376. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/emoji.d.ts.map +1 -1
  377. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/index.d.ts +1 -0
  378. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/index.d.ts.map +1 -1
  379. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts.map +1 -1
  380. package/dist/vue3/types/components/rich_text_editor/extensions/mentions/mention.d.ts +1 -1
  381. package/dist/vue3/types/components/rich_text_editor/extensions/mentions/mention.d.ts.map +1 -1
  382. package/dist/vue3/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts +1 -1
  383. package/dist/vue3/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts.map +1 -1
  384. package/dist/vue3/types/components/split_button/split_button-omega.vue.d.ts +1 -1
  385. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +1 -1
  386. package/dist/vue3/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
  387. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  388. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +30 -1
  389. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  390. package/dist/vue3/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  391. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +240 -8
  392. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  393. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +0 -1
  394. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  395. package/dist/vue3/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +1 -1
  396. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +1 -1
  397. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -3
  398. package/dist/vue3/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  399. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +0 -1
  400. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  401. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  402. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  403. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
  404. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  405. package/dist/vue3/types/recipes/leftbar/general_row/index.d.ts +1 -1
  406. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +30 -1
  407. package/dist/vue3/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  408. package/package.json +26 -26
  409. package/dist/vue3/common/storybook_utils.cjs +0 -8
  410. package/dist/vue3/common/storybook_utils.cjs.map +0 -1
  411. package/dist/vue3/common/storybook_utils.js +0 -8
  412. package/dist/vue3/common/storybook_utils.js.map +0 -1
  413. package/dist/vue3/types/common/storybook_utils.d.ts +0 -25
  414. package/dist/vue3/types/common/storybook_utils.d.ts.map +0 -1
@@ -1,12 +1,14 @@
1
+ import { DtIconChevronLeft, DtIconChevronRight, DtIconMoreHorizontal } from "@dialpad/dialtone-icons/vue3";
1
2
  import { resolveComponent, openBlock, createElementBlock, createVNode, normalizeClass, withCtx, Fragment, renderList, createBlock, createTextVNode, toDisplayString } from "vue";
2
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
3
4
  import DtButton from "../button/button.vue.js";
4
- import DtIcon from "../icon/icon.vue.js";
5
5
  const _sfc_main = {
6
6
  name: "DtPagination",
7
7
  components: {
8
8
  DtButton,
9
- DtIcon
9
+ DtIconChevronLeft,
10
+ DtIconChevronRight,
11
+ DtIconMoreHorizontal
10
12
  },
11
13
  props: {
12
14
  /**
@@ -126,8 +128,10 @@ const _hoisted_2 = {
126
128
  "data-qa": "dt-pagination-separator"
127
129
  };
128
130
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
129
- const _component_dt_icon = resolveComponent("dt-icon");
131
+ const _component_dt_icon_chevron_left = resolveComponent("dt-icon-chevron-left");
130
132
  const _component_dt_button = resolveComponent("dt-button");
133
+ const _component_dt_icon_more_horizontal = resolveComponent("dt-icon-more-horizontal");
134
+ const _component_dt_icon_chevron_right = resolveComponent("dt-icon-chevron-right");
131
135
  return openBlock(), createElementBlock("nav", {
132
136
  "aria-label": $props.ariaLabel,
133
137
  class: "d-pagination"
@@ -142,10 +146,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
142
146
  onClick: _cache[0] || (_cache[0] = ($event) => $options.changePage($data.currentPage - 1))
143
147
  }, {
144
148
  icon: withCtx(() => [
145
- createVNode(_component_dt_icon, {
146
- name: "chevron-left",
147
- size: "300"
148
- })
149
+ createVNode(_component_dt_icon_chevron_left, { size: "300" })
149
150
  ]),
150
151
  _: 1
151
152
  }, 8, ["aria-label", "kind", "importance", "disabled", "class"]),
@@ -155,10 +156,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
155
156
  class: normalizeClass({ "d-pagination__separator": isNaN(Number(page)) })
156
157
  }, [
157
158
  isNaN(Number(page)) ? (openBlock(), createElementBlock("div", _hoisted_2, [
158
- createVNode(_component_dt_icon, {
159
- name: "more-horizontal",
160
- size: "300"
161
- })
159
+ createVNode(_component_dt_icon_more_horizontal, { size: "300" })
162
160
  ])) : (openBlock(), createBlock(_component_dt_button, {
163
161
  key: 1,
164
162
  "aria-label": $props.pageNumberAriaLabel(page),
@@ -184,10 +182,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
184
182
  onClick: _cache[1] || (_cache[1] = ($event) => $options.changePage($data.currentPage + 1))
185
183
  }, {
186
184
  icon: withCtx(() => [
187
- createVNode(_component_dt_icon, {
188
- name: "chevron-right",
189
- size: "300"
190
- })
185
+ createVNode(_component_dt_icon_chevron_right, { size: "300" })
191
186
  ]),
192
187
  _: 1
193
188
  }, 8, ["aria-label", "disabled", "importance", "class"])
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.vue.js","sources":["../../../components/pagination/pagination.vue"],"sourcesContent":["<template>\n <nav\n :aria-label=\"ariaLabel\"\n class=\"d-pagination\"\n >\n <dt-button\n class=\"d-pagination__button\"\n data-qa=\"dt-pagination-prev\"\n :aria-label=\"prevAriaLabel\"\n :kind=\"isFirstPage ? 'default' : 'muted'\"\n :importance=\"isFirstPage ? 'primary' : 'clear'\"\n :disabled=\"isFirstPage\"\n :class=\"isFirstPage ? 'd-fc-black-300 d-bgc-transparent' : 'd-fc-tertiary'\"\n @click=\"changePage(currentPage - 1)\"\n >\n <template #icon>\n <dt-icon\n name=\"chevron-left\"\n size=\"300\"\n />\n </template>\n </dt-button>\n <div\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page}-${index}`\"\n :class=\"{ 'd-pagination__separator': isNaN(Number(page)) }\"\n >\n <!-- eslint-disable vue/no-bare-strings-in-template -->\n <div\n v-if=\"isNaN(Number(page))\"\n class=\"d-pagination__separator-icon\"\n data-qa=\"dt-pagination-separator\"\n >\n <dt-icon\n name=\"more-horizontal\"\n size=\"300\"\n />\n <!-- … -->\n </div>\n <!-- eslint-enable vue/no-bare-strings-in-template -->\n <dt-button\n v-else\n :aria-label=\"pageNumberAriaLabel(page)\"\n :kind=\"currentPage === page ? 'default' : 'muted'\"\n :importance=\"currentPage === page ? 'primary' : 'clear'\"\n label-class=\"\"\n @click=\"changePage(page)\"\n >\n {{ page }}\n </dt-button>\n </div>\n <dt-button\n class=\"d-pagination__button\"\n data-qa=\"dt-pagination-next\"\n :aria-label=\"nextAriaLabel\"\n :disabled=\"isLastPage\"\n kind=\"muted\"\n :importance=\"isLastPage ? 'primary' : 'clear'\"\n :class=\"isLastPage ? 'd-fc-black-300 d-bgc-transparent' : 'd-fc-tertiary'\"\n @click=\"changePage(currentPage + 1)\"\n >\n <template #icon>\n <dt-icon\n name=\"chevron-right\"\n size=\"300\"\n />\n </template>\n </dt-button>\n </nav>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\n\n/**\n * Pagination allows you to divide large amounts of content into smaller chunks across multiple pages.\n * @see https://dialtone.dialpad.com/components/pagination.html\n */\nexport default {\n name: 'DtPagination',\n\n components: {\n DtButton,\n DtIcon,\n },\n\n props: {\n /**\n * Descriptive label for the pagination content.\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * The total number of the pages\n */\n totalPages: {\n type: Number,\n required: true,\n },\n\n /**\n * Descriptive label for the previous button.\n */\n prevAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Descriptive label for the next button.\n */\n nextAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * A method that will be called to get the aria label of each page.\n */\n pageNumberAriaLabel: {\n type: Function,\n required: true,\n },\n\n /**\n * The active current page in the list of pages, defaults to the first page\n */\n activePage: {\n type: Number,\n default: 1,\n },\n\n /**\n * Determines the max pages to be shown in the list. Using an odd number is recommended.\n * If an even number is given, then it will be rounded down to the nearest odd number to always\n * keep current page in the middle when current page is in the mid-range.\n */\n maxVisible: {\n type: Number,\n default: 5,\n },\n },\n\n emits: [\n /**\n * Page change event\n *\n * @event change\n * @type {Number}\n */\n 'change',\n ],\n\n data () {\n return {\n currentPage: this.activePage,\n };\n },\n\n computed: {\n isFirstPage () {\n return this.currentPage === 1;\n },\n\n isLastPage () {\n return this.currentPage === this.totalPages;\n },\n\n pages () {\n if (this.maxVisible === 0) {\n return [];\n }\n if (this.totalPages <= this.maxVisible) {\n return this.range(1, this.totalPages);\n }\n\n const start = this.maxVisible - 1;\n const end = this.totalPages - start + 1;\n\n if (this.currentPage < start) {\n return [...this.range(1, start), '...', this.totalPages];\n }\n\n if (this.currentPage > end) {\n return [1, '...', ...this.range(end, this.totalPages)];\n }\n\n // rounding to the nearest odd according to the maxlength to always show the page number in the middle.\n const total = this.maxVisible - (3 - this.maxVisible % 2);\n const centerIndex = Math.floor(total / 2);\n const left = this.currentPage - centerIndex;\n const right = this.currentPage + centerIndex;\n return [1, '...', ...this.range(left, right), '...', this.totalPages];\n },\n },\n\n methods: {\n range (from, to) {\n const range = [];\n from = from > 0 ? from : 1;\n for (let i = from; i <= to; i++) {\n range.push(i);\n }\n return range;\n },\n\n changePage (page) {\n this.currentPage = page;\n this.$emit('change', this.currentPage);\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_createVNode","_normalizeClass","_openBlock","_Fragment","_renderList","_createBlock"],"mappings":"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"}
1
+ {"version":3,"file":"pagination.vue.js","sources":["../../../components/pagination/pagination.vue"],"sourcesContent":["<template>\n <nav\n :aria-label=\"ariaLabel\"\n class=\"d-pagination\"\n >\n <dt-button\n class=\"d-pagination__button\"\n data-qa=\"dt-pagination-prev\"\n :aria-label=\"prevAriaLabel\"\n :kind=\"isFirstPage ? 'default' : 'muted'\"\n :importance=\"isFirstPage ? 'primary' : 'clear'\"\n :disabled=\"isFirstPage\"\n :class=\"isFirstPage ? 'd-fc-black-300 d-bgc-transparent' : 'd-fc-tertiary'\"\n @click=\"changePage(currentPage - 1)\"\n >\n <template #icon>\n <dt-icon-chevron-left\n size=\"300\"\n />\n </template>\n </dt-button>\n <div\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page}-${index}`\"\n :class=\"{ 'd-pagination__separator': isNaN(Number(page)) }\"\n >\n <!-- eslint-disable vue/no-bare-strings-in-template -->\n <div\n v-if=\"isNaN(Number(page))\"\n class=\"d-pagination__separator-icon\"\n data-qa=\"dt-pagination-separator\"\n >\n <dt-icon-more-horizontal\n size=\"300\"\n />\n <!-- … -->\n </div>\n <!-- eslint-enable vue/no-bare-strings-in-template -->\n <dt-button\n v-else\n :aria-label=\"pageNumberAriaLabel(page)\"\n :kind=\"currentPage === page ? 'default' : 'muted'\"\n :importance=\"currentPage === page ? 'primary' : 'clear'\"\n label-class=\"\"\n @click=\"changePage(page)\"\n >\n {{ page }}\n </dt-button>\n </div>\n <dt-button\n class=\"d-pagination__button\"\n data-qa=\"dt-pagination-next\"\n :aria-label=\"nextAriaLabel\"\n :disabled=\"isLastPage\"\n kind=\"muted\"\n :importance=\"isLastPage ? 'primary' : 'clear'\"\n :class=\"isLastPage ? 'd-fc-black-300 d-bgc-transparent' : 'd-fc-tertiary'\"\n @click=\"changePage(currentPage + 1)\"\n >\n <template #icon>\n <dt-icon-chevron-right\n size=\"300\"\n />\n </template>\n </dt-button>\n </nav>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtIconChevronLeft, DtIconChevronRight, DtIconMoreHorizontal } from '@dialpad/dialtone-icons/vue3';\n\n/**\n * Pagination allows you to divide large amounts of content into smaller chunks across multiple pages.\n * @see https://dialtone.dialpad.com/components/pagination.html\n */\nexport default {\n name: 'DtPagination',\n\n components: {\n DtButton,\n DtIconChevronLeft,\n DtIconChevronRight,\n DtIconMoreHorizontal,\n },\n\n props: {\n /**\n * Descriptive label for the pagination content.\n */\n ariaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * The total number of the pages\n */\n totalPages: {\n type: Number,\n required: true,\n },\n\n /**\n * Descriptive label for the previous button.\n */\n prevAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Descriptive label for the next button.\n */\n nextAriaLabel: {\n type: String,\n required: true,\n },\n\n /**\n * A method that will be called to get the aria label of each page.\n */\n pageNumberAriaLabel: {\n type: Function,\n required: true,\n },\n\n /**\n * The active current page in the list of pages, defaults to the first page\n */\n activePage: {\n type: Number,\n default: 1,\n },\n\n /**\n * Determines the max pages to be shown in the list. Using an odd number is recommended.\n * If an even number is given, then it will be rounded down to the nearest odd number to always\n * keep current page in the middle when current page is in the mid-range.\n */\n maxVisible: {\n type: Number,\n default: 5,\n },\n },\n\n emits: [\n /**\n * Page change event\n *\n * @event change\n * @type {Number}\n */\n 'change',\n ],\n\n data () {\n return {\n currentPage: this.activePage,\n };\n },\n\n computed: {\n isFirstPage () {\n return this.currentPage === 1;\n },\n\n isLastPage () {\n return this.currentPage === this.totalPages;\n },\n\n pages () {\n if (this.maxVisible === 0) {\n return [];\n }\n if (this.totalPages <= this.maxVisible) {\n return this.range(1, this.totalPages);\n }\n\n const start = this.maxVisible - 1;\n const end = this.totalPages - start + 1;\n\n if (this.currentPage < start) {\n return [...this.range(1, start), '...', this.totalPages];\n }\n\n if (this.currentPage > end) {\n return [1, '...', ...this.range(end, this.totalPages)];\n }\n\n // rounding to the nearest odd according to the maxlength to always show the page number in the middle.\n const total = this.maxVisible - (3 - this.maxVisible % 2);\n const centerIndex = Math.floor(total / 2);\n const left = this.currentPage - centerIndex;\n const right = this.currentPage + centerIndex;\n return [1, '...', ...this.range(left, right), '...', this.totalPages];\n },\n },\n\n methods: {\n range (from, to) {\n const range = [];\n from = from > 0 ? from : 1;\n for (let i = from; i <= to; i++) {\n range.push(i);\n }\n return range;\n },\n\n changePage (page) {\n this.currentPage = page;\n this.$emit('change', this.currentPage);\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_createVNode","_normalizeClass","_openBlock","_Fragment","_renderList","_createBlock"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
+ const vue3 = require("@dialpad/dialtone-icons/vue3");
2
3
  const common_utils = require("../../common/utils.cjs");
3
4
  const vue = require("vue");
4
5
  const _pluginVue_exportHelper = require("../../_virtual/_plugin-vue_export-helper.cjs");
5
6
  const button = require("../button/button.vue.cjs");
6
- const icon = require("../icon/icon.vue.cjs");
7
7
  const _sfc_main = {
8
8
  name: "PopoverHeaderFooter",
9
9
  components: {
10
10
  DtButton: button,
11
- DtIcon: icon
11
+ DtIconClose: vue3.DtIconClose
12
12
  },
13
13
  props: {
14
14
  // eslint-disable-next-line vue/require-default-prop
@@ -66,7 +66,7 @@ const _sfc_main = {
66
66
  }
67
67
  };
68
68
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
69
- const _component_dt_icon = vue.resolveComponent("dt-icon");
69
+ const _component_dt_icon_close = vue.resolveComponent("dt-icon-close");
70
70
  const _component_dt_button = vue.resolveComponent("dt-button");
71
71
  return vue.openBlock(), vue.createElementBlock("div", {
72
72
  "data-qa": "dt-popover-header-footer",
@@ -100,10 +100,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
100
100
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
101
101
  }), {
102
102
  icon: vue.withCtx(() => [
103
- vue.createVNode(_component_dt_icon, {
104
- name: "close",
105
- size: "300"
106
- })
103
+ vue.createVNode(_component_dt_icon_close, { size: "300" })
107
104
  ]),
108
105
  _: 1
109
106
  }, 16, ["class"])) : vue.createCommentVNode("", true)
@@ -1 +1 @@
1
- {"version":3,"file":"popover_header_footer.vue.cjs","sources":["../../../components/popover/popover_header_footer.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-popover-header-footer\"\n :class=\"{\n 'd-popover__header': type === 'header',\n 'd-popover__footer': type === 'footer',\n }\"\n >\n <div\n v-if=\"hasSlotContent($slots.content)\"\n data-qa=\"dt-popover-header-footer-content\"\n :class=\"[{\n 'd-popover__header__content': type === 'header',\n 'd-popover__footer__content': type === 'footer',\n }, contentClass]\"\n >\n <!-- @slot Slot for main content -->\n <slot name=\"content\" />\n </div>\n <dt-button\n v-if=\"showCloseButton\"\n ref=\"popover__close-button\"\n data-qa=\"dt-popover-close\"\n :class=\"{\n 'd-popover__header__close-button': type === 'header',\n 'd-popover__footer__close-button': type === 'footer',\n }\"\n importance=\"outlined\"\n kind=\"muted\"\n circle\n v-bind=\"closeButtonProps\"\n @click=\"$emit('close')\"\n >\n <template #icon>\n <dt-icon\n name=\"close\"\n size=\"300\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\nimport { hasSlotContent } from '@/common/utils';\n\nexport default {\n name: 'PopoverHeaderFooter',\n components: {\n DtButton,\n DtIcon,\n },\n\n props: {\n // eslint-disable-next-line vue/require-default-prop\n type: {\n type: String,\n validator: function (value) {\n return ['header', 'footer'].includes(value);\n },\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines visibility for close button\n * @values true, false\n */\n showCloseButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * A set of props to be passed into the popover's header close button.\n * Requires an 'ariaLabel' property.\n */\n closeButtonProps: {\n type: Object,\n default: () => {},\n },\n },\n\n emits: [\n /**\n * Emitted when popover is closed\n *\n * @event close\n * @type { Boolean }\n */\n 'close',\n ],\n\n data () {\n return {\n hasSlotContent,\n };\n },\n\n methods: {\n focusCloseButton () {\n const closeButton = this.$refs['popover__close-button']?.$el;\n closeButton?.focus();\n },\n },\n};\n</script>\n"],"names":["DtButton","DtIcon","hasSlotContent","_createElementBlock","_normalizeClass","_renderSlot","_openBlock","_createBlock","_mergeProps","_createVNode"],"mappings":";;;;;;AAgDA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAAA;AAAAA,IACA,QAAAC;AAAAA,EACD;AAAA,EAED,OAAO;AAAA;AAAA,IAEL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW,SAAU,OAAO;AAC1B,eAAO,CAAC,UAAU,QAAQ,EAAE,SAAS,KAAK;AAAA,MAC3C;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAE;AAAA,IAClB;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,gBAAAC,aAAc;AAAA;EAEjB;AAAA,EAED,SAAS;AAAA,IACP,mBAAoB;;AAClB,YAAM,eAAc,UAAK,MAAM,uBAAuB,MAAlC,mBAAqC;AACzD,iDAAa;AAAA,IACd;AAAA,EACF;AACH;;;;0BAhHEC,IAuCM,mBAAA,OAAA;AAAA,IAtCJ,WAAQ;AAAA,IACP,OAAKC,IAAAA,eAAA;AAAA,2BAA+B,OAAI,SAAA;AAAA,2BAA0C,OAAI,SAAA;AAAA;;IAM/E,MAAc,eAAC,KAAM,OAAC,OAAO,sBADrCD,IAUM,mBAAA,OAAA;AAAA;MARJ,WAAQ;AAAA,MACP,OAAKC,IAAA,eAAA,CAAA;AAAA,sCAA2C,OAAI,SAAA;AAAA,sCAAqD,OAAI,SAAA;AAAA,SAAwB,OAAY,YAAA,CAAA;AAAA;MAMlJC,eAAuB,KAAA,QAAA,SAAA;AAAA;IAGjB,OAAe,mBADvBC,IAAAA,aAAAC,IAAAA,YAoBY,sBApBZC,eAoBY;AAAA;MAlBV,KAAI;AAAA,MACJ,WAAQ;AAAA,MACP,OAAK;AAAA,2CAA+C,OAAI,SAAA;AAAA,2CAA0D,OAAI,SAAA;AAAA;MAIvH,YAAW;AAAA,MACX,MAAK;AAAA,MACL,QAAA;AAAA,OACQ,OAAgB,kBAAA;AAAA,MACvB,+CAAO,KAAK,MAAA,OAAA;AAAA;MAEF,kBACT,MAGE;AAAA,QAHFC,IAAAA,YAGE,oBAAA;AAAA,UAFA,MAAK;AAAA,UACL,MAAK;AAAA;;;;;;;;"}
1
+ {"version":3,"file":"popover_header_footer.vue.cjs","sources":["../../../components/popover/popover_header_footer.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-popover-header-footer\"\n :class=\"{\n 'd-popover__header': type === 'header',\n 'd-popover__footer': type === 'footer',\n }\"\n >\n <div\n v-if=\"hasSlotContent($slots.content)\"\n data-qa=\"dt-popover-header-footer-content\"\n :class=\"[{\n 'd-popover__header__content': type === 'header',\n 'd-popover__footer__content': type === 'footer',\n }, contentClass]\"\n >\n <!-- @slot Slot for main content -->\n <slot name=\"content\" />\n </div>\n <dt-button\n v-if=\"showCloseButton\"\n ref=\"popover__close-button\"\n data-qa=\"dt-popover-close\"\n :class=\"{\n 'd-popover__header__close-button': type === 'header',\n 'd-popover__footer__close-button': type === 'footer',\n }\"\n importance=\"outlined\"\n kind=\"muted\"\n circle\n v-bind=\"closeButtonProps\"\n @click=\"$emit('close')\"\n >\n <template #icon>\n <dt-icon-close\n size=\"300\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue3';\nimport { hasSlotContent } from '@/common/utils';\n\nexport default {\n name: 'PopoverHeaderFooter',\n components: {\n DtButton,\n DtIconClose,\n },\n\n props: {\n // eslint-disable-next-line vue/require-default-prop\n type: {\n type: String,\n validator: function (value) {\n return ['header', 'footer'].includes(value);\n },\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines visibility for close button\n * @values true, false\n */\n showCloseButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * A set of props to be passed into the popover's header close button.\n * Requires an 'ariaLabel' property.\n */\n closeButtonProps: {\n type: Object,\n default: () => {},\n },\n },\n\n emits: [\n /**\n * Emitted when popover is closed\n *\n * @event close\n * @type { Boolean }\n */\n 'close',\n ],\n\n data () {\n return {\n hasSlotContent,\n };\n },\n\n methods: {\n focusCloseButton () {\n const closeButton = this.$refs['popover__close-button']?.$el;\n closeButton?.focus();\n },\n },\n};\n</script>\n"],"names":["DtButton","DtIconClose","hasSlotContent","_createElementBlock","_normalizeClass","_renderSlot","_openBlock","_createBlock","_mergeProps","_createVNode"],"mappings":";;;;;;AA+CA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAAA;AAAAA,iBACAC,KAAW;AAAA,EACZ;AAAA,EAED,OAAO;AAAA;AAAA,IAEL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW,SAAU,OAAO;AAC1B,eAAO,CAAC,UAAU,QAAQ,EAAE,SAAS,KAAK;AAAA,MAC3C;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAE;AAAA,IAClB;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,gBAAAC,aAAc;AAAA;EAEjB;AAAA,EAED,SAAS;AAAA,IACP,mBAAoB;;AAClB,YAAM,eAAc,UAAK,MAAM,uBAAuB,MAAlC,mBAAqC;AACzD,iDAAa;AAAA,IACd;AAAA,EACF;AACH;;;;0BA/GEC,IAsCM,mBAAA,OAAA;AAAA,IArCJ,WAAQ;AAAA,IACP,OAAKC,IAAAA,eAAA;AAAA,2BAA+B,OAAI,SAAA;AAAA,2BAA0C,OAAI,SAAA;AAAA;;IAM/E,MAAc,eAAC,KAAM,OAAC,OAAO,sBADrCD,IAUM,mBAAA,OAAA;AAAA;MARJ,WAAQ;AAAA,MACP,OAAKC,IAAA,eAAA,CAAA;AAAA,sCAA2C,OAAI,SAAA;AAAA,sCAAqD,OAAI,SAAA;AAAA,SAAwB,OAAY,YAAA,CAAA;AAAA;MAMlJC,eAAuB,KAAA,QAAA,SAAA;AAAA;IAGjB,OAAe,mBADvBC,IAAAA,aAAAC,IAAAA,YAmBY,sBAnBZC,eAmBY;AAAA;MAjBV,KAAI;AAAA,MACJ,WAAQ;AAAA,MACP,OAAK;AAAA,2CAA+C,OAAI,SAAA;AAAA,2CAA0D,OAAI,SAAA;AAAA;MAIvH,YAAW;AAAA,MACX,MAAK;AAAA,MACL,QAAA;AAAA,OACQ,OAAgB,kBAAA;AAAA,MACvB,+CAAO,KAAK,MAAA,OAAA;AAAA;MAEF,kBACT,MAEE;AAAA,QAFFC,IAAAA,YAEE,0BAAA,EADA,MAAK,MAAK,CAAA;AAAA;;;;;;;"}
@@ -1,13 +1,13 @@
1
+ import { DtIconClose } from "@dialpad/dialtone-icons/vue3";
1
2
  import { hasSlotContent } from "../../common/utils.js";
2
3
  import { resolveComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createCommentVNode, createBlock, mergeProps, withCtx, createVNode } from "vue";
3
4
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
4
5
  import DtButton from "../button/button.vue.js";
5
- import DtIcon from "../icon/icon.vue.js";
6
6
  const _sfc_main = {
7
7
  name: "PopoverHeaderFooter",
8
8
  components: {
9
9
  DtButton,
10
- DtIcon
10
+ DtIconClose
11
11
  },
12
12
  props: {
13
13
  // eslint-disable-next-line vue/require-default-prop
@@ -65,7 +65,7 @@ const _sfc_main = {
65
65
  }
66
66
  };
67
67
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
68
- const _component_dt_icon = resolveComponent("dt-icon");
68
+ const _component_dt_icon_close = resolveComponent("dt-icon-close");
69
69
  const _component_dt_button = resolveComponent("dt-button");
70
70
  return openBlock(), createElementBlock("div", {
71
71
  "data-qa": "dt-popover-header-footer",
@@ -99,10 +99,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
99
99
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
100
100
  }), {
101
101
  icon: withCtx(() => [
102
- createVNode(_component_dt_icon, {
103
- name: "close",
104
- size: "300"
105
- })
102
+ createVNode(_component_dt_icon_close, { size: "300" })
106
103
  ]),
107
104
  _: 1
108
105
  }, 16, ["class"])) : createCommentVNode("", true)
@@ -1 +1 @@
1
- {"version":3,"file":"popover_header_footer.vue.js","sources":["../../../components/popover/popover_header_footer.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-popover-header-footer\"\n :class=\"{\n 'd-popover__header': type === 'header',\n 'd-popover__footer': type === 'footer',\n }\"\n >\n <div\n v-if=\"hasSlotContent($slots.content)\"\n data-qa=\"dt-popover-header-footer-content\"\n :class=\"[{\n 'd-popover__header__content': type === 'header',\n 'd-popover__footer__content': type === 'footer',\n }, contentClass]\"\n >\n <!-- @slot Slot for main content -->\n <slot name=\"content\" />\n </div>\n <dt-button\n v-if=\"showCloseButton\"\n ref=\"popover__close-button\"\n data-qa=\"dt-popover-close\"\n :class=\"{\n 'd-popover__header__close-button': type === 'header',\n 'd-popover__footer__close-button': type === 'footer',\n }\"\n importance=\"outlined\"\n kind=\"muted\"\n circle\n v-bind=\"closeButtonProps\"\n @click=\"$emit('close')\"\n >\n <template #icon>\n <dt-icon\n name=\"close\"\n size=\"300\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\nimport { hasSlotContent } from '@/common/utils';\n\nexport default {\n name: 'PopoverHeaderFooter',\n components: {\n DtButton,\n DtIcon,\n },\n\n props: {\n // eslint-disable-next-line vue/require-default-prop\n type: {\n type: String,\n validator: function (value) {\n return ['header', 'footer'].includes(value);\n },\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines visibility for close button\n * @values true, false\n */\n showCloseButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * A set of props to be passed into the popover's header close button.\n * Requires an 'ariaLabel' property.\n */\n closeButtonProps: {\n type: Object,\n default: () => {},\n },\n },\n\n emits: [\n /**\n * Emitted when popover is closed\n *\n * @event close\n * @type { Boolean }\n */\n 'close',\n ],\n\n data () {\n return {\n hasSlotContent,\n };\n },\n\n methods: {\n focusCloseButton () {\n const closeButton = this.$refs['popover__close-button']?.$el;\n closeButton?.focus();\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_renderSlot","_openBlock","_createBlock","_mergeProps","_createVNode"],"mappings":";;;;;AAgDA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACD;AAAA,EAED,OAAO;AAAA;AAAA,IAEL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW,SAAU,OAAO;AAC1B,eAAO,CAAC,UAAU,QAAQ,EAAE,SAAS,KAAK;AAAA,MAC3C;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAE;AAAA,IAClB;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL;AAAA;EAEH;AAAA,EAED,SAAS;AAAA,IACP,mBAAoB;;AAClB,YAAM,eAAc,UAAK,MAAM,uBAAuB,MAAlC,mBAAqC;AACzD,iDAAa;AAAA,IACd;AAAA,EACF;AACH;;;;sBAhHEA,mBAuCM,OAAA;AAAA,IAtCJ,WAAQ;AAAA,IACP,OAAKC,eAAA;AAAA,2BAA+B,OAAI,SAAA;AAAA,2BAA0C,OAAI,SAAA;AAAA;;IAM/E,MAAc,eAAC,KAAM,OAAC,OAAO,kBADrCD,mBAUM,OAAA;AAAA;MARJ,WAAQ;AAAA,MACP,OAAKC,eAAA,CAAA;AAAA,sCAA2C,OAAI,SAAA;AAAA,sCAAqD,OAAI,SAAA;AAAA,SAAwB,OAAY,YAAA,CAAA;AAAA;MAMlJC,WAAuB,KAAA,QAAA,SAAA;AAAA;IAGjB,OAAe,mBADvBC,aAAAC,YAoBY,sBApBZC,WAoBY;AAAA;MAlBV,KAAI;AAAA,MACJ,WAAQ;AAAA,MACP,OAAK;AAAA,2CAA+C,OAAI,SAAA;AAAA,2CAA0D,OAAI,SAAA;AAAA;MAIvH,YAAW;AAAA,MACX,MAAK;AAAA,MACL,QAAA;AAAA,OACQ,OAAgB,kBAAA;AAAA,MACvB,+CAAO,KAAK,MAAA,OAAA;AAAA;MAEF,cACT,MAGE;AAAA,QAHFC,YAGE,oBAAA;AAAA,UAFA,MAAK;AAAA,UACL,MAAK;AAAA;;;;;;;"}
1
+ {"version":3,"file":"popover_header_footer.vue.js","sources":["../../../components/popover/popover_header_footer.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-popover-header-footer\"\n :class=\"{\n 'd-popover__header': type === 'header',\n 'd-popover__footer': type === 'footer',\n }\"\n >\n <div\n v-if=\"hasSlotContent($slots.content)\"\n data-qa=\"dt-popover-header-footer-content\"\n :class=\"[{\n 'd-popover__header__content': type === 'header',\n 'd-popover__footer__content': type === 'footer',\n }, contentClass]\"\n >\n <!-- @slot Slot for main content -->\n <slot name=\"content\" />\n </div>\n <dt-button\n v-if=\"showCloseButton\"\n ref=\"popover__close-button\"\n data-qa=\"dt-popover-close\"\n :class=\"{\n 'd-popover__header__close-button': type === 'header',\n 'd-popover__footer__close-button': type === 'footer',\n }\"\n importance=\"outlined\"\n kind=\"muted\"\n circle\n v-bind=\"closeButtonProps\"\n @click=\"$emit('close')\"\n >\n <template #icon>\n <dt-icon-close\n size=\"300\"\n />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue3';\nimport { hasSlotContent } from '@/common/utils';\n\nexport default {\n name: 'PopoverHeaderFooter',\n components: {\n DtButton,\n DtIconClose,\n },\n\n props: {\n // eslint-disable-next-line vue/require-default-prop\n type: {\n type: String,\n validator: function (value) {\n return ['header', 'footer'].includes(value);\n },\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines visibility for close button\n * @values true, false\n */\n showCloseButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * A set of props to be passed into the popover's header close button.\n * Requires an 'ariaLabel' property.\n */\n closeButtonProps: {\n type: Object,\n default: () => {},\n },\n },\n\n emits: [\n /**\n * Emitted when popover is closed\n *\n * @event close\n * @type { Boolean }\n */\n 'close',\n ],\n\n data () {\n return {\n hasSlotContent,\n };\n },\n\n methods: {\n focusCloseButton () {\n const closeButton = this.$refs['popover__close-button']?.$el;\n closeButton?.focus();\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_renderSlot","_openBlock","_createBlock","_mergeProps","_createVNode"],"mappings":";;;;;AA+CA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACD;AAAA,EAED,OAAO;AAAA;AAAA,IAEL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW,SAAU,OAAO;AAC1B,eAAO,CAAC,UAAU,QAAQ,EAAE,SAAS,KAAK;AAAA,MAC3C;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAE;AAAA,IAClB;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL;AAAA;EAEH;AAAA,EAED,SAAS;AAAA,IACP,mBAAoB;;AAClB,YAAM,eAAc,UAAK,MAAM,uBAAuB,MAAlC,mBAAqC;AACzD,iDAAa;AAAA,IACd;AAAA,EACF;AACH;;;;sBA/GEA,mBAsCM,OAAA;AAAA,IArCJ,WAAQ;AAAA,IACP,OAAKC,eAAA;AAAA,2BAA+B,OAAI,SAAA;AAAA,2BAA0C,OAAI,SAAA;AAAA;;IAM/E,MAAc,eAAC,KAAM,OAAC,OAAO,kBADrCD,mBAUM,OAAA;AAAA;MARJ,WAAQ;AAAA,MACP,OAAKC,eAAA,CAAA;AAAA,sCAA2C,OAAI,SAAA;AAAA,sCAAqD,OAAI,SAAA;AAAA,SAAwB,OAAY,YAAA,CAAA;AAAA;MAMlJC,WAAuB,KAAA,QAAA,SAAA;AAAA;IAGjB,OAAe,mBADvBC,aAAAC,YAmBY,sBAnBZC,WAmBY;AAAA;MAjBV,KAAI;AAAA,MACJ,WAAQ;AAAA,MACP,OAAK;AAAA,2CAA+C,OAAI,SAAA;AAAA,2CAA0D,OAAI,SAAA;AAAA;MAIvH,YAAW;AAAA,MACX,MAAK;AAAA,MACL,QAAA;AAAA,OACQ,OAAgB,kBAAA;AAAA,MACvB,+CAAO,KAAK,MAAA,OAAA;AAAA;MAEF,cACT,MAEE;AAAA,QAFFC,YAEE,0BAAA,EADA,MAAK,MAAK,CAAA;AAAA;;;;;;"}
@@ -1,24 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const core = require("@tiptap/core");
4
+ const state = require("@tiptap/pm/state");
4
5
  const vue3 = require("@tiptap/vue-3");
6
+ const Suggestion = require("@tiptap/suggestion");
7
+ const regexCombinedEmojis = require("regex-combined-emojis");
5
8
  const EmojiComponent = require("./EmojiComponent.vue.cjs");
6
9
  const common_emoji = require("../../../../common/emoji.cjs");
7
- const state = require("@tiptap/pm/state");
8
- const Suggestion = require("@tiptap/suggestion");
9
10
  const suggestion = require("./suggestion.cjs");
10
- const regexCombinedEmojis = require("regex-combined-emojis");
11
- const EmojiPluginKey = new state.PluginKey("emoji");
12
- const inputShortCodeRegex = new RegExp("(^| |(?<=:))(:\\w+:)$");
11
+ const inputShortCodeRegex = /(:\w+:)$/;
13
12
  const inputUnicodeRegex = new RegExp(regexCombinedEmojis.emojiPattern + "$");
14
13
  const inputRuleMatch = (match) => {
15
14
  if (match && common_emoji.codeToEmojiData(match[0])) {
16
15
  const text = match[2] || match[0];
17
- return {
18
- index: match.index,
19
- text,
20
- match
21
- };
16
+ return { text };
22
17
  }
23
18
  };
24
19
  const shortCodePasteMatch = (text) => {
@@ -30,19 +25,16 @@ const shortCodePasteMatch = (text) => {
30
25
  }));
31
26
  };
32
27
  const Emoji = core.Node.create({
28
+ name: "emoji",
33
29
  addOptions() {
34
30
  return {
35
- HTMLAttributes: {},
36
- suggestion: {
37
- char: ":",
38
- pluginKey: EmojiPluginKey
39
- }
31
+ HTMLAttributes: {}
40
32
  };
41
33
  },
42
- name: "emoji",
43
34
  group: "inline",
44
35
  inline: true,
45
- selectable: true,
36
+ selectable: false,
37
+ atom: true,
46
38
  addNodeView() {
47
39
  return vue3.VueNodeViewRenderer(EmojiComponent);
48
40
  },
@@ -69,32 +61,17 @@ const Emoji = core.Node.create({
69
61
  },
70
62
  addInputRules() {
71
63
  return [
72
- // shortcode input
73
- core.nodeInputRule({
64
+ new core.InputRule({
74
65
  find: (text) => {
75
- const match = text.match(inputShortCodeRegex);
66
+ const match = text.match(inputShortCodeRegex) || text.match(inputUnicodeRegex);
76
67
  if (!match) return;
77
68
  return inputRuleMatch(match);
78
69
  },
79
- type: this.type,
80
- getAttributes(attrs) {
81
- return {
82
- code: attrs[0]
83
- };
84
- }
85
- }),
86
- core.nodeInputRule({
87
- find: (text) => {
88
- const match = text.match(inputUnicodeRegex);
89
- if (!match) return;
90
- return inputRuleMatch(match);
91
- },
92
- type: this.type,
93
- getAttributes(attrs) {
94
- const emoji = common_emoji.codeToEmojiData(attrs[0]).shortname;
95
- return {
96
- code: emoji
97
- };
70
+ handler: ({ state: state2, range, match, commands, chain, can }) => {
71
+ const { tr } = state2;
72
+ const start = range.from;
73
+ const end = range.to;
74
+ tr.replaceWith(start, end, this.type.create({ code: match[0] }));
98
75
  }
99
76
  })
100
77
  ];
@@ -124,13 +101,34 @@ const Emoji = core.Node.create({
124
101
  addProseMirrorPlugins() {
125
102
  return [
126
103
  Suggestion({
104
+ char: ":",
105
+ pluginKey: new state.PluginKey("emoji"),
127
106
  editor: this.editor,
128
107
  ...this.options.suggestion,
129
108
  ...suggestion
130
109
  })
131
110
  ];
111
+ },
112
+ addKeyboardShortcuts() {
113
+ return {
114
+ Backspace: () => this.editor.commands.command(({ tr, state: state2 }) => {
115
+ let isEmoji = false;
116
+ const { selection } = state2;
117
+ const { empty, anchor } = selection;
118
+ if (!empty) {
119
+ return false;
120
+ }
121
+ state2.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
122
+ if (node.type.name === this.name) {
123
+ isEmoji = true;
124
+ tr.insertText("", pos, pos + node.nodeSize);
125
+ return false;
126
+ }
127
+ });
128
+ return isEmoji;
129
+ })
130
+ };
132
131
  }
133
132
  });
134
133
  exports.Emoji = Emoji;
135
- exports.EmojiPluginKey = EmojiPluginKey;
136
134
  //# sourceMappingURL=emoji.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.cjs","sources":["../../../../../components/rich_text_editor/extensions/emoji/emoji.js"],"sourcesContent":["import { mergeAttributes, Node, nodeInputRule, nodePasteRule } from '@tiptap/core';\nimport { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport EmojiComponent from './EmojiComponent.vue';\nimport { codeToEmojiData, emojiShortCodeRegex, emojiRegex, stringToUnicode } from '@/common/emoji';\nimport { PluginKey } from '@tiptap/pm/state';\n\nimport Suggestion from '@tiptap/suggestion';\nimport suggestionOptions from './suggestion';\nimport { emojiPattern } from 'regex-combined-emojis';\n\nexport const EmojiPluginKey = new PluginKey('emoji');\n\nconst inputShortCodeRegex = /(^| |(?<=:))(:\\w+:)$/;\nconst inputUnicodeRegex = new RegExp(emojiPattern + '$');\n\nconst inputRuleMatch = (match) => {\n if (match && codeToEmojiData(match[0])) {\n const text = match[2] || match[0];\n // needs to be a dict returned\n // ref type InputRuleMatch:\n // https://github.com/ueberdosis/tiptap/blob/main/packages/core/src/InputRule.ts#L16\n return {\n index: match.index,\n text,\n match,\n };\n }\n};\n\nconst shortCodePasteMatch = (text) => {\n const matches = [...text.matchAll(emojiShortCodeRegex)];\n\n return matches\n .filter(match => codeToEmojiData(match[0]))\n .map(match => ({\n index: match.index,\n text: match[0],\n match,\n }));\n};\n\nexport const Emoji = Node.create({\n addOptions () {\n return {\n HTMLAttributes: {},\n suggestion: {\n char: ':',\n pluginKey: EmojiPluginKey,\n },\n };\n },\n name: 'emoji',\n group: 'inline',\n inline: true,\n selectable: true,\n\n addNodeView () {\n return VueNodeViewRenderer(EmojiComponent);\n },\n\n addAttributes () {\n return {\n code: {\n default: null,\n },\n };\n },\n\n parseHTML () {\n return [\n {\n tag: 'emoji-component',\n },\n ];\n },\n\n renderText ({ node }) {\n // output emoji in text as unicode character rather than shortname for backwards compatibility with\n // our backend.\n const unicodeEmoji = stringToUnicode(codeToEmojiData(node.attrs.code).unicode_output);\n return unicodeEmoji;\n },\n\n renderHTML ({ HTMLAttributes }) {\n return ['emoji-component', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\n },\n\n addInputRules () {\n return [\n // shortcode input\n nodeInputRule({\n find: (text) => {\n const match = text.match(inputShortCodeRegex);\n if (!match) return;\n return inputRuleMatch(match);\n },\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n\n nodeInputRule({\n find: (text) => {\n const match = text.match(inputUnicodeRegex);\n if (!match) return;\n return inputRuleMatch(match);\n },\n type: this.type,\n getAttributes (attrs) {\n const emoji = codeToEmojiData(attrs[0]).shortname;\n return {\n code: emoji,\n };\n },\n }),\n ];\n },\n\n addPasteRules () {\n return [\n nodePasteRule({\n find: shortCodePasteMatch,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n nodePasteRule({\n find: emojiRegex,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n ];\n },\n\n addProseMirrorPlugins () {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n ...suggestionOptions,\n }),\n ];\n },\n});\n"],"names":["PluginKey","emojiPattern","codeToEmojiData","emojiShortCodeRegex","Node","VueNodeViewRenderer","stringToUnicode","mergeAttributes","nodeInputRule","nodePasteRule","emojiRegex","suggestionOptions"],"mappings":"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"}
1
+ {"version":3,"file":"emoji.cjs","sources":["../../../../../components/rich_text_editor/extensions/emoji/emoji.js"],"sourcesContent":["import { InputRule, mergeAttributes, Node, nodePasteRule } from '@tiptap/core';\nimport { PluginKey } from '@tiptap/pm/state';\nimport { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport Suggestion from '@tiptap/suggestion';\nimport { emojiPattern } from 'regex-combined-emojis';\n\nimport EmojiComponent from './EmojiComponent.vue';\nimport { codeToEmojiData, emojiShortCodeRegex, emojiRegex, stringToUnicode } from '@/common/emoji';\nimport suggestionOptions from './suggestion';\n\nconst inputShortCodeRegex = /(:\\w+:)$/;\nconst inputUnicodeRegex = new RegExp(emojiPattern + '$');\n\nconst inputRuleMatch = (match) => {\n if (match && codeToEmojiData(match[0])) {\n const text = match[2] || match[0];\n // needs to be a dict returned\n // ref type InputRuleMatch:\n // https://github.com/ueberdosis/tiptap/blob/main/packages/core/src/InputRule.ts#L16\n return { text };\n }\n};\n\nconst shortCodePasteMatch = (text) => {\n const matches = [...text.matchAll(emojiShortCodeRegex)];\n\n return matches\n .filter(match => codeToEmojiData(match[0]))\n .map(match => ({\n index: match.index,\n text: match[0],\n match,\n }));\n};\n\nexport const Emoji = Node.create({\n name: 'emoji',\n addOptions () {\n return {\n HTMLAttributes: {},\n };\n },\n group: 'inline',\n inline: true,\n selectable: false,\n atom: true,\n\n addNodeView () {\n return VueNodeViewRenderer(EmojiComponent);\n },\n\n addAttributes () {\n return {\n code: {\n default: null,\n },\n };\n },\n\n parseHTML () {\n return [\n {\n tag: 'emoji-component',\n },\n ];\n },\n\n renderText ({ node }) {\n // output emoji in text as unicode character rather than shortname for backwards compatibility with\n // our backend.\n const unicodeEmoji = stringToUnicode(codeToEmojiData(node.attrs.code).unicode_output);\n return unicodeEmoji;\n },\n\n renderHTML ({ HTMLAttributes }) {\n return ['emoji-component', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\n },\n\n addInputRules () {\n return [\n new InputRule({\n find: (text) => {\n const match = text.match(inputShortCodeRegex) || text.match(inputUnicodeRegex);\n if (!match) return;\n\n return inputRuleMatch(match);\n },\n handler: ({ state, range, match, commands, chain, can }) => {\n const { tr } = state;\n const start = range.from;\n const end = range.to;\n tr.replaceWith(start, end, this.type.create({ code: match[0] }));\n },\n }),\n ];\n },\n\n addPasteRules () {\n return [\n nodePasteRule({\n find: shortCodePasteMatch,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n nodePasteRule({\n find: emojiRegex,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n ];\n },\n\n addProseMirrorPlugins () {\n return [\n Suggestion({\n char: ':',\n pluginKey: new PluginKey('emoji'),\n editor: this.editor,\n ...this.options.suggestion,\n ...suggestionOptions,\n }),\n ];\n },\n\n addKeyboardShortcuts () {\n return {\n Backspace: () => this.editor.commands.command(({ tr, state }) => {\n let isEmoji = false;\n const { selection } = state;\n const { empty, anchor } = selection;\n if (!empty) { return false; }\n state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {\n if (node.type.name === this.name) {\n isEmoji = true;\n tr.insertText('', pos, pos + node.nodeSize);\n return false;\n }\n });\n return isEmoji;\n }),\n };\n },\n});\n"],"names":["emojiPattern","codeToEmojiData","emojiShortCodeRegex","Node","VueNodeViewRenderer","stringToUnicode","mergeAttributes","InputRule","state","nodePasteRule","emojiRegex","PluginKey","suggestionOptions"],"mappings":"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"}
@@ -1,22 +1,17 @@
1
- import { Node, mergeAttributes, nodeInputRule, nodePasteRule } from "@tiptap/core";
1
+ import { Node, mergeAttributes, InputRule, nodePasteRule } from "@tiptap/core";
2
+ import { PluginKey } from "@tiptap/pm/state";
2
3
  import { VueNodeViewRenderer } from "@tiptap/vue-3";
4
+ import Suggestion from "@tiptap/suggestion";
5
+ import { emojiPattern } from "regex-combined-emojis";
3
6
  import EmojiComponent from "./EmojiComponent.vue.js";
4
7
  import { stringToUnicode, codeToEmojiData, emojiRegex, emojiShortCodeRegex } from "../../../../common/emoji.js";
5
- import { PluginKey } from "@tiptap/pm/state";
6
- import Suggestion from "@tiptap/suggestion";
7
8
  import suggestionOptions from "./suggestion.js";
8
- import { emojiPattern } from "regex-combined-emojis";
9
- const EmojiPluginKey = new PluginKey("emoji");
10
- const inputShortCodeRegex = new RegExp("(^| |(?<=:))(:\\w+:)$");
9
+ const inputShortCodeRegex = /(:\w+:)$/;
11
10
  const inputUnicodeRegex = new RegExp(emojiPattern + "$");
12
11
  const inputRuleMatch = (match) => {
13
12
  if (match && codeToEmojiData(match[0])) {
14
13
  const text = match[2] || match[0];
15
- return {
16
- index: match.index,
17
- text,
18
- match
19
- };
14
+ return { text };
20
15
  }
21
16
  };
22
17
  const shortCodePasteMatch = (text) => {
@@ -28,19 +23,16 @@ const shortCodePasteMatch = (text) => {
28
23
  }));
29
24
  };
30
25
  const Emoji = Node.create({
26
+ name: "emoji",
31
27
  addOptions() {
32
28
  return {
33
- HTMLAttributes: {},
34
- suggestion: {
35
- char: ":",
36
- pluginKey: EmojiPluginKey
37
- }
29
+ HTMLAttributes: {}
38
30
  };
39
31
  },
40
- name: "emoji",
41
32
  group: "inline",
42
33
  inline: true,
43
- selectable: true,
34
+ selectable: false,
35
+ atom: true,
44
36
  addNodeView() {
45
37
  return VueNodeViewRenderer(EmojiComponent);
46
38
  },
@@ -67,32 +59,17 @@ const Emoji = Node.create({
67
59
  },
68
60
  addInputRules() {
69
61
  return [
70
- // shortcode input
71
- nodeInputRule({
62
+ new InputRule({
72
63
  find: (text) => {
73
- const match = text.match(inputShortCodeRegex);
64
+ const match = text.match(inputShortCodeRegex) || text.match(inputUnicodeRegex);
74
65
  if (!match) return;
75
66
  return inputRuleMatch(match);
76
67
  },
77
- type: this.type,
78
- getAttributes(attrs) {
79
- return {
80
- code: attrs[0]
81
- };
82
- }
83
- }),
84
- nodeInputRule({
85
- find: (text) => {
86
- const match = text.match(inputUnicodeRegex);
87
- if (!match) return;
88
- return inputRuleMatch(match);
89
- },
90
- type: this.type,
91
- getAttributes(attrs) {
92
- const emoji = codeToEmojiData(attrs[0]).shortname;
93
- return {
94
- code: emoji
95
- };
68
+ handler: ({ state, range, match, commands, chain, can }) => {
69
+ const { tr } = state;
70
+ const start = range.from;
71
+ const end = range.to;
72
+ tr.replaceWith(start, end, this.type.create({ code: match[0] }));
96
73
  }
97
74
  })
98
75
  ];
@@ -122,15 +99,36 @@ const Emoji = Node.create({
122
99
  addProseMirrorPlugins() {
123
100
  return [
124
101
  Suggestion({
102
+ char: ":",
103
+ pluginKey: new PluginKey("emoji"),
125
104
  editor: this.editor,
126
105
  ...this.options.suggestion,
127
106
  ...suggestionOptions
128
107
  })
129
108
  ];
109
+ },
110
+ addKeyboardShortcuts() {
111
+ return {
112
+ Backspace: () => this.editor.commands.command(({ tr, state }) => {
113
+ let isEmoji = false;
114
+ const { selection } = state;
115
+ const { empty, anchor } = selection;
116
+ if (!empty) {
117
+ return false;
118
+ }
119
+ state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
120
+ if (node.type.name === this.name) {
121
+ isEmoji = true;
122
+ tr.insertText("", pos, pos + node.nodeSize);
123
+ return false;
124
+ }
125
+ });
126
+ return isEmoji;
127
+ })
128
+ };
130
129
  }
131
130
  });
132
131
  export {
133
- Emoji,
134
- EmojiPluginKey
132
+ Emoji
135
133
  };
136
134
  //# sourceMappingURL=emoji.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.js","sources":["../../../../../components/rich_text_editor/extensions/emoji/emoji.js"],"sourcesContent":["import { mergeAttributes, Node, nodeInputRule, nodePasteRule } from '@tiptap/core';\nimport { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport EmojiComponent from './EmojiComponent.vue';\nimport { codeToEmojiData, emojiShortCodeRegex, emojiRegex, stringToUnicode } from '@/common/emoji';\nimport { PluginKey } from '@tiptap/pm/state';\n\nimport Suggestion from '@tiptap/suggestion';\nimport suggestionOptions from './suggestion';\nimport { emojiPattern } from 'regex-combined-emojis';\n\nexport const EmojiPluginKey = new PluginKey('emoji');\n\nconst inputShortCodeRegex = /(^| |(?<=:))(:\\w+:)$/;\nconst inputUnicodeRegex = new RegExp(emojiPattern + '$');\n\nconst inputRuleMatch = (match) => {\n if (match && codeToEmojiData(match[0])) {\n const text = match[2] || match[0];\n // needs to be a dict returned\n // ref type InputRuleMatch:\n // https://github.com/ueberdosis/tiptap/blob/main/packages/core/src/InputRule.ts#L16\n return {\n index: match.index,\n text,\n match,\n };\n }\n};\n\nconst shortCodePasteMatch = (text) => {\n const matches = [...text.matchAll(emojiShortCodeRegex)];\n\n return matches\n .filter(match => codeToEmojiData(match[0]))\n .map(match => ({\n index: match.index,\n text: match[0],\n match,\n }));\n};\n\nexport const Emoji = Node.create({\n addOptions () {\n return {\n HTMLAttributes: {},\n suggestion: {\n char: ':',\n pluginKey: EmojiPluginKey,\n },\n };\n },\n name: 'emoji',\n group: 'inline',\n inline: true,\n selectable: true,\n\n addNodeView () {\n return VueNodeViewRenderer(EmojiComponent);\n },\n\n addAttributes () {\n return {\n code: {\n default: null,\n },\n };\n },\n\n parseHTML () {\n return [\n {\n tag: 'emoji-component',\n },\n ];\n },\n\n renderText ({ node }) {\n // output emoji in text as unicode character rather than shortname for backwards compatibility with\n // our backend.\n const unicodeEmoji = stringToUnicode(codeToEmojiData(node.attrs.code).unicode_output);\n return unicodeEmoji;\n },\n\n renderHTML ({ HTMLAttributes }) {\n return ['emoji-component', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\n },\n\n addInputRules () {\n return [\n // shortcode input\n nodeInputRule({\n find: (text) => {\n const match = text.match(inputShortCodeRegex);\n if (!match) return;\n return inputRuleMatch(match);\n },\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n\n nodeInputRule({\n find: (text) => {\n const match = text.match(inputUnicodeRegex);\n if (!match) return;\n return inputRuleMatch(match);\n },\n type: this.type,\n getAttributes (attrs) {\n const emoji = codeToEmojiData(attrs[0]).shortname;\n return {\n code: emoji,\n };\n },\n }),\n ];\n },\n\n addPasteRules () {\n return [\n nodePasteRule({\n find: shortCodePasteMatch,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n nodePasteRule({\n find: emojiRegex,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n ];\n },\n\n addProseMirrorPlugins () {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n ...suggestionOptions,\n }),\n ];\n },\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emoji.js","sources":["../../../../../components/rich_text_editor/extensions/emoji/emoji.js"],"sourcesContent":["import { InputRule, mergeAttributes, Node, nodePasteRule } from '@tiptap/core';\nimport { PluginKey } from '@tiptap/pm/state';\nimport { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport Suggestion from '@tiptap/suggestion';\nimport { emojiPattern } from 'regex-combined-emojis';\n\nimport EmojiComponent from './EmojiComponent.vue';\nimport { codeToEmojiData, emojiShortCodeRegex, emojiRegex, stringToUnicode } from '@/common/emoji';\nimport suggestionOptions from './suggestion';\n\nconst inputShortCodeRegex = /(:\\w+:)$/;\nconst inputUnicodeRegex = new RegExp(emojiPattern + '$');\n\nconst inputRuleMatch = (match) => {\n if (match && codeToEmojiData(match[0])) {\n const text = match[2] || match[0];\n // needs to be a dict returned\n // ref type InputRuleMatch:\n // https://github.com/ueberdosis/tiptap/blob/main/packages/core/src/InputRule.ts#L16\n return { text };\n }\n};\n\nconst shortCodePasteMatch = (text) => {\n const matches = [...text.matchAll(emojiShortCodeRegex)];\n\n return matches\n .filter(match => codeToEmojiData(match[0]))\n .map(match => ({\n index: match.index,\n text: match[0],\n match,\n }));\n};\n\nexport const Emoji = Node.create({\n name: 'emoji',\n addOptions () {\n return {\n HTMLAttributes: {},\n };\n },\n group: 'inline',\n inline: true,\n selectable: false,\n atom: true,\n\n addNodeView () {\n return VueNodeViewRenderer(EmojiComponent);\n },\n\n addAttributes () {\n return {\n code: {\n default: null,\n },\n };\n },\n\n parseHTML () {\n return [\n {\n tag: 'emoji-component',\n },\n ];\n },\n\n renderText ({ node }) {\n // output emoji in text as unicode character rather than shortname for backwards compatibility with\n // our backend.\n const unicodeEmoji = stringToUnicode(codeToEmojiData(node.attrs.code).unicode_output);\n return unicodeEmoji;\n },\n\n renderHTML ({ HTMLAttributes }) {\n return ['emoji-component', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\n },\n\n addInputRules () {\n return [\n new InputRule({\n find: (text) => {\n const match = text.match(inputShortCodeRegex) || text.match(inputUnicodeRegex);\n if (!match) return;\n\n return inputRuleMatch(match);\n },\n handler: ({ state, range, match, commands, chain, can }) => {\n const { tr } = state;\n const start = range.from;\n const end = range.to;\n tr.replaceWith(start, end, this.type.create({ code: match[0] }));\n },\n }),\n ];\n },\n\n addPasteRules () {\n return [\n nodePasteRule({\n find: shortCodePasteMatch,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n nodePasteRule({\n find: emojiRegex,\n type: this.type,\n getAttributes (attrs) {\n return {\n code: attrs[0],\n };\n },\n }),\n ];\n },\n\n addProseMirrorPlugins () {\n return [\n Suggestion({\n char: ':',\n pluginKey: new PluginKey('emoji'),\n editor: this.editor,\n ...this.options.suggestion,\n ...suggestionOptions,\n }),\n ];\n },\n\n addKeyboardShortcuts () {\n return {\n Backspace: () => this.editor.commands.command(({ tr, state }) => {\n let isEmoji = false;\n const { selection } = state;\n const { empty, anchor } = selection;\n if (!empty) { return false; }\n state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {\n if (node.type.name === this.name) {\n isEmoji = true;\n tr.insertText('', pos, pos + node.nodeSize);\n return false;\n }\n });\n return isEmoji;\n }),\n };\n },\n});\n"],"names":[],"mappings":";;;;;;;;AAUA,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB,IAAI,OAAO,eAAe,GAAG;AAEvD,MAAM,iBAAiB,CAAC,UAAU;AAChC,MAAI,SAAS,gBAAgB,MAAM,CAAC,CAAC,GAAG;AACtC,UAAM,OAAO,MAAM,CAAC,KAAK,MAAM,CAAC;AAIhC,WAAO,EAAE,KAAI;AAAA,EACd;AACH;AAEA,MAAM,sBAAsB,CAAC,SAAS;AACpC,QAAM,UAAU,CAAC,GAAG,KAAK,SAAS,mBAAmB,CAAC;AAEtD,SAAO,QACJ,OAAO,WAAS,gBAAgB,MAAM,CAAC,CAAC,CAAC,EACzC,IAAI,YAAU;AAAA,IACb,OAAO,MAAM;AAAA,IACb,MAAM,MAAM,CAAC;AAAA,IACb;AAAA,EACD,EAAC;AACN;AAEY,MAAC,QAAQ,KAAK,OAAO;AAAA,EAC/B,MAAM;AAAA,EACN,aAAc;AACZ,WAAO;AAAA,MACL,gBAAgB,CAAE;AAAA,IACxB;AAAA,EACG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,MAAM;AAAA,EAEN,cAAe;AACb,WAAO,oBAAoB,cAAc;AAAA,EAC1C;AAAA,EAED,gBAAiB;AACf,WAAO;AAAA,MACL,MAAM;AAAA,QACJ,SAAS;AAAA,MACV;AAAA,IACP;AAAA,EACG;AAAA,EAED,YAAa;AACX,WAAO;AAAA,MACL;AAAA,QACE,KAAK;AAAA,MACN;AAAA,IACP;AAAA,EACG;AAAA,EAED,WAAY,EAAE,QAAQ;AAGpB,UAAM,eAAe,gBAAgB,gBAAgB,KAAK,MAAM,IAAI,EAAE,cAAc;AACpF,WAAO;AAAA,EACR;AAAA,EAED,WAAY,EAAE,kBAAkB;AAC9B,WAAO,CAAC,mBAAmB,gBAAgB,KAAK,QAAQ,gBAAgB,cAAc,CAAC;AAAA,EACxF;AAAA,EAED,gBAAiB;AACf,WAAO;AAAA,MACL,IAAI,UAAU;AAAA,QACZ,MAAM,CAAC,SAAS;AACd,gBAAM,QAAQ,KAAK,MAAM,mBAAmB,KAAK,KAAK,MAAM,iBAAiB;AAC7E,cAAI,CAAC,MAAO;AAEZ,iBAAO,eAAe,KAAK;AAAA,QAC5B;AAAA,QACD,SAAS,CAAC,EAAE,OAAO,OAAO,OAAO,UAAU,OAAO,UAAU;AAC1D,gBAAM,EAAE,GAAI,IAAG;AACf,gBAAM,QAAQ,MAAM;AACpB,gBAAM,MAAM,MAAM;AAClB,aAAG,YAAY,OAAO,KAAK,KAAK,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC,EAAC,CAAE,CAAC;AAAA,QAChE;AAAA,MACT,CAAO;AAAA,IACP;AAAA,EACG;AAAA,EAED,gBAAiB;AACf,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,MAAM,KAAK;AAAA,QACX,cAAe,OAAO;AACpB,iBAAO;AAAA,YACL,MAAM,MAAM,CAAC;AAAA,UACzB;AAAA,QACS;AAAA,MACT,CAAO;AAAA,MACD,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,MAAM,KAAK;AAAA,QACX,cAAe,OAAO;AACpB,iBAAO;AAAA,YACL,MAAM,MAAM,CAAC;AAAA,UACzB;AAAA,QACS;AAAA,MACT,CAAO;AAAA,IACP;AAAA,EACG;AAAA,EAED,wBAAyB;AACvB,WAAO;AAAA,MACL,WAAW;AAAA,QACT,MAAM;AAAA,QACN,WAAW,IAAI,UAAU,OAAO;AAAA,QAChC,QAAQ,KAAK;AAAA,QACb,GAAG,KAAK,QAAQ;AAAA,QAChB,GAAG;AAAA,MACX,CAAO;AAAA,IACP;AAAA,EACG;AAAA,EAED,uBAAwB;AACtB,WAAO;AAAA,MACL,WAAW,MAAM,KAAK,OAAO,SAAS,QAAQ,CAAC,EAAE,IAAI,YAAY;AAC/D,YAAI,UAAU;AACd,cAAM,EAAE,UAAW,IAAG;AACtB,cAAM,EAAE,OAAO,OAAQ,IAAG;AAC1B,YAAI,CAAC,OAAO;AAAE,iBAAO;AAAA,QAAQ;AAC7B,cAAM,IAAI,aAAa,SAAS,GAAG,QAAQ,CAAC,MAAM,QAAQ;AACxD,cAAI,KAAK,KAAK,SAAS,KAAK,MAAM;AAChC,sBAAU;AACV,eAAG,WAAW,IAAI,KAAK,MAAM,KAAK,QAAQ;AAC1C,mBAAO;AAAA,UACR;AAAA,QACX,CAAS;AACD,eAAO;AAAA,MACf,CAAO;AAAA,IACP;AAAA,EACG;AACH,CAAC;"}
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
3
  const emoji = require("./emoji.cjs");
3
- module.exports = emoji.Emoji;
4
+ exports.Emoji = emoji.Emoji;
5
+ exports.default = emoji.Emoji;
4
6
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -1,5 +1,6 @@
1
1
  import { Emoji } from "./emoji.js";
2
2
  export {
3
+ Emoji,
3
4
  Emoji as default
4
5
  };
5
6
  //# sourceMappingURL=index.js.map
@@ -33,10 +33,6 @@ const suggestionOptions = {
33
33
  {
34
34
  type: "emoji",
35
35
  attrs: props
36
- },
37
- {
38
- type: "text",
39
- text: " "
40
36
  }
41
37
  ]).run();
42
38
  (_b = window.getSelection()) == null ? void 0 : _b.collapseToEnd();