@dialpad/dialtone 9.133.0-next.2 → 9.134.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 (1082) hide show
  1. package/dist/css/dialtone-default-theme.css +2980 -2995
  2. package/dist/css/dialtone-default-theme.min.css +1 -1
  3. package/dist/css/dialtone-docs.json +1 -1
  4. package/dist/css/dialtone.css +1964 -2041
  5. package/dist/css/dialtone.min.css +1 -1
  6. package/dist/css/tokens-docs.json +1 -1
  7. package/dist/tokens/doc.json +64053 -64053
  8. package/dist/vue2/common/constants/index.cjs.map +1 -1
  9. package/dist/vue2/common/constants/index.js.map +1 -1
  10. package/dist/vue2/common/dates/index.cjs.map +1 -1
  11. package/dist/vue2/common/dates/index.js +3 -3
  12. package/dist/vue2/common/dates/index.js.map +1 -1
  13. package/dist/vue2/common/emoji/index.cjs +1 -1
  14. package/dist/vue2/common/emoji/index.cjs.map +1 -1
  15. package/dist/vue2/common/emoji/index.js +46 -39
  16. package/dist/vue2/common/emoji/index.js.map +1 -1
  17. package/dist/vue2/common/mixins/dom.cjs.map +1 -1
  18. package/dist/vue2/common/mixins/dom.js.map +1 -1
  19. package/dist/vue2/common/mixins/input-group.cjs.map +1 -1
  20. package/dist/vue2/common/mixins/input-group.js +5 -5
  21. package/dist/vue2/common/mixins/input-group.js.map +1 -1
  22. package/dist/vue2/common/mixins/input.cjs.map +1 -1
  23. package/dist/vue2/common/mixins/input.js.map +1 -1
  24. package/dist/vue2/common/mixins/keyboard-list-navigation.cjs.map +1 -1
  25. package/dist/vue2/common/mixins/keyboard-list-navigation.js.map +1 -1
  26. package/dist/vue2/common/mixins/modal.cjs.map +1 -1
  27. package/dist/vue2/common/mixins/modal.js.map +1 -1
  28. package/dist/vue2/common/mixins/skeleton.cjs.map +1 -1
  29. package/dist/vue2/common/mixins/skeleton.js.map +1 -1
  30. package/dist/vue2/common/utils/index.cjs.map +1 -1
  31. package/dist/vue2/common/utils/index.js.map +1 -1
  32. package/dist/vue2/common/validators/index.cjs.map +1 -1
  33. package/dist/vue2/common/validators/index.js.map +1 -1
  34. package/dist/vue2/dialtone-vue.cjs +1 -1
  35. package/dist/vue2/dialtone-vue.js +360 -359
  36. package/dist/vue2/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  37. package/dist/vue2/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  38. package/dist/vue2/lib/attachment-carousel/attachment-carousel.js +4 -4
  39. package/dist/vue2/lib/avatar/avatar-constants.cjs.map +1 -1
  40. package/dist/vue2/lib/avatar/avatar-constants.js.map +1 -1
  41. package/dist/vue2/lib/avatar/avatar.cjs.map +1 -1
  42. package/dist/vue2/lib/avatar/avatar.js +11 -11
  43. package/dist/vue2/lib/avatar/avatar.js.map +1 -1
  44. package/dist/vue2/lib/avatar/utils.cjs.map +1 -1
  45. package/dist/vue2/lib/avatar/utils.js.map +1 -1
  46. package/dist/vue2/lib/badge/badge.cjs.map +1 -1
  47. package/dist/vue2/lib/badge/badge.js +7 -7
  48. package/dist/vue2/lib/badge/badge.js.map +1 -1
  49. package/dist/vue2/lib/banner/banner.cjs +1 -1
  50. package/dist/vue2/lib/banner/banner.cjs.map +1 -1
  51. package/dist/vue2/lib/banner/banner.js +4 -4
  52. package/dist/vue2/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  53. package/dist/vue2/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  54. package/dist/vue2/lib/button/button-constants.cjs.map +1 -1
  55. package/dist/vue2/lib/button/button-constants.js.map +1 -1
  56. package/dist/vue2/lib/button/button.cjs.map +1 -1
  57. package/dist/vue2/lib/button/button.js +12 -12
  58. package/dist/vue2/lib/button-group/button-group.cjs.map +1 -1
  59. package/dist/vue2/lib/button-group/buttons-decorator.cjs.map +1 -1
  60. package/dist/vue2/lib/callbar-button/callbar-button-constants.cjs.map +1 -1
  61. package/dist/vue2/lib/callbar-button/callbar-button-constants.js.map +1 -1
  62. package/dist/vue2/lib/callbar-button/callbar-button.cjs +1 -1
  63. package/dist/vue2/lib/callbar-button/callbar-button.cjs.map +1 -1
  64. package/dist/vue2/lib/callbar-button/callbar-button.js +3 -3
  65. package/dist/vue2/lib/callbar-button/callbar-button.js.map +1 -1
  66. package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  67. package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  68. package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +6 -6
  69. package/dist/vue2/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  70. package/dist/vue2/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  71. package/dist/vue2/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  72. package/dist/vue2/lib/callbar-button-with-popover/callbar-button-with-popover.js +6 -6
  73. package/dist/vue2/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  74. package/dist/vue2/lib/callbox/callbox-constants.cjs.map +1 -1
  75. package/dist/vue2/lib/callbox/callbox-constants.js.map +1 -1
  76. package/dist/vue2/lib/callbox/callbox.cjs.map +1 -1
  77. package/dist/vue2/lib/callbox/callbox.js +5 -5
  78. package/dist/vue2/lib/checkbox/checkbox-constants.cjs.map +1 -1
  79. package/dist/vue2/lib/checkbox/checkbox-constants.js.map +1 -1
  80. package/dist/vue2/lib/checkbox/checkbox.cjs.map +1 -1
  81. package/dist/vue2/lib/checkbox-group/checkbox-group.cjs.map +1 -1
  82. package/dist/vue2/lib/checkbox-group/checkbox-group.js.map +1 -1
  83. package/dist/vue2/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
  84. package/dist/vue2/lib/chip/chip-constants.cjs.map +1 -1
  85. package/dist/vue2/lib/chip/chip-constants.js.map +1 -1
  86. package/dist/vue2/lib/chip/chip.cjs.map +1 -1
  87. package/dist/vue2/lib/chip/chip.js +3 -3
  88. package/dist/vue2/lib/collapsible/collapsible.cjs +1 -1
  89. package/dist/vue2/lib/collapsible/collapsible.cjs.map +1 -1
  90. package/dist/vue2/lib/collapsible/collapsible.js +7 -7
  91. package/dist/vue2/lib/combobox/combobox-constants.cjs.map +1 -1
  92. package/dist/vue2/lib/combobox/combobox-constants.js.map +1 -1
  93. package/dist/vue2/lib/combobox/combobox-empty-list.cjs.map +1 -1
  94. package/dist/vue2/lib/combobox/combobox-loading-list.cjs +1 -1
  95. package/dist/vue2/lib/combobox/combobox-loading-list.cjs.map +1 -1
  96. package/dist/vue2/lib/combobox/combobox-loading-list.js +3 -3
  97. package/dist/vue2/lib/combobox/combobox.cjs.map +1 -1
  98. package/dist/vue2/lib/combobox/combobox.js.map +1 -1
  99. package/dist/vue2/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  100. package/dist/vue2/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  101. package/dist/vue2/lib/combobox-multi-select/combobox-multi-select-story-constants.cjs.map +1 -1
  102. package/dist/vue2/lib/combobox-multi-select/combobox-multi-select-story-constants.js.map +1 -1
  103. package/dist/vue2/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  104. package/dist/vue2/lib/combobox-multi-select/combobox-multi-select.js +3 -3
  105. package/dist/vue2/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  106. package/dist/vue2/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  107. package/dist/vue2/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  108. package/dist/vue2/lib/combobox-with-popover/combobox-with-popover.js +9 -9
  109. package/dist/vue2/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  110. package/dist/vue2/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  111. package/dist/vue2/lib/contact-centers-row/contact-centers-row.js +7 -7
  112. package/dist/vue2/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  113. package/dist/vue2/lib/contact-info/contact-info.cjs.map +1 -1
  114. package/dist/vue2/lib/contact-row/contact-row.cjs +1 -1
  115. package/dist/vue2/lib/contact-row/contact-row.cjs.map +1 -1
  116. package/dist/vue2/lib/contact-row/contact-row.js +4 -4
  117. package/dist/vue2/lib/datepicker/datepicker.cjs +1 -1
  118. package/dist/vue2/lib/datepicker/datepicker.cjs.map +1 -1
  119. package/dist/vue2/lib/datepicker/datepicker.js +21 -21
  120. package/dist/vue2/lib/datepicker/datepicker.js.map +1 -1
  121. package/dist/vue2/lib/datepicker/formatUtils.cjs.map +1 -1
  122. package/dist/vue2/lib/datepicker/formatUtils.js.map +1 -1
  123. package/dist/vue2/lib/datepicker/utils.cjs.map +1 -1
  124. package/dist/vue2/lib/datepicker/utils.js.map +1 -1
  125. package/dist/vue2/lib/description-list/description-list.cjs.map +1 -1
  126. package/dist/vue2/lib/dropdown/dropdown-constants.cjs.map +1 -1
  127. package/dist/vue2/lib/dropdown/dropdown-constants.js.map +1 -1
  128. package/dist/vue2/lib/dropdown/dropdown-story-constants.cjs.map +1 -1
  129. package/dist/vue2/lib/dropdown/dropdown-story-constants.js.map +1 -1
  130. package/dist/vue2/lib/dropdown/dropdown.cjs +1 -1
  131. package/dist/vue2/lib/dropdown/dropdown.cjs.map +1 -1
  132. package/dist/vue2/lib/dropdown/dropdown.js +1 -1
  133. package/dist/vue2/lib/dropdown/dropdown.js.map +1 -1
  134. package/dist/vue2/lib/editor/editor-constants.cjs.map +1 -1
  135. package/dist/vue2/lib/editor/editor-constants.js.map +1 -1
  136. package/dist/vue2/lib/editor/editor.cjs +1 -1
  137. package/dist/vue2/lib/editor/editor.cjs.map +1 -1
  138. package/dist/vue2/lib/editor/editor.js +44 -44
  139. package/dist/vue2/lib/editor/editor.js.map +1 -1
  140. package/dist/vue2/lib/emoji/emoji.cjs.map +1 -1
  141. package/dist/vue2/lib/emoji/emoji.js +4 -4
  142. package/dist/vue2/lib/emoji-picker/emoji-picker-constants.cjs.map +1 -1
  143. package/dist/vue2/lib/emoji-picker/emoji-picker-constants.js.map +1 -1
  144. package/dist/vue2/lib/emoji-picker/emoji-picker.cjs +1 -1
  145. package/dist/vue2/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  146. package/dist/vue2/lib/emoji-picker/emoji-picker.js +9 -9
  147. package/dist/vue2/lib/emoji-picker/emoji-picker.js.map +1 -1
  148. package/dist/vue2/lib/emoji-row/emoji-row-constants.cjs.map +1 -1
  149. package/dist/vue2/lib/emoji-row/emoji-row-constants.js.map +1 -1
  150. package/dist/vue2/lib/emoji-row/emoji-row.cjs +1 -1
  151. package/dist/vue2/lib/emoji-row/emoji-row.cjs.map +1 -1
  152. package/dist/vue2/lib/emoji-row/emoji-row.js +30 -30
  153. package/dist/vue2/lib/emoji-row/emoji-row.js.map +1 -1
  154. package/dist/vue2/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  155. package/dist/vue2/lib/empty-state/empty-state-constants.cjs.map +1 -1
  156. package/dist/vue2/lib/empty-state/empty-state-constants.js.map +1 -1
  157. package/dist/vue2/lib/empty-state/empty-state.cjs.map +1 -1
  158. package/dist/vue2/lib/empty-state/empty-state.js +3 -3
  159. package/dist/vue2/lib/empty-state/empty-state.js.map +1 -1
  160. package/dist/vue2/lib/feed-item-pill/feed-item-pill-constants.cjs.map +1 -1
  161. package/dist/vue2/lib/feed-item-pill/feed-item-pill-constants.js.map +1 -1
  162. package/dist/vue2/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  163. package/dist/vue2/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  164. package/dist/vue2/lib/feed-item-pill/feed-item-pill.js +3 -3
  165. package/dist/vue2/lib/feed-item-row/feed-item-row-constants.cjs.map +1 -1
  166. package/dist/vue2/lib/feed-item-row/feed-item-row-constants.js.map +1 -1
  167. package/dist/vue2/lib/feed-item-row/feed-item-row.cjs +1 -1
  168. package/dist/vue2/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  169. package/dist/vue2/lib/feed-item-row/feed-item-row.js +8 -8
  170. package/dist/vue2/lib/general-row/general-row-constants.cjs.map +1 -1
  171. package/dist/vue2/lib/general-row/general-row-constants.js.map +1 -1
  172. package/dist/vue2/lib/general-row/general-row.cjs +1 -1
  173. package/dist/vue2/lib/general-row/general-row.cjs.map +1 -1
  174. package/dist/vue2/lib/general-row/general-row.js +14 -14
  175. package/dist/vue2/lib/general-row/general-row.js.map +1 -1
  176. package/dist/vue2/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  177. package/dist/vue2/lib/general-row/leftbar-general-row-icon.js +30 -30
  178. package/dist/vue2/lib/group-row/group-row.cjs.map +1 -1
  179. package/dist/vue2/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  180. package/dist/vue2/lib/hovercard/hovercard.cjs +1 -1
  181. package/dist/vue2/lib/hovercard/hovercard.cjs.map +1 -1
  182. package/dist/vue2/lib/hovercard/hovercard.js +7 -7
  183. package/dist/vue2/lib/hovercard/hovercard.js.map +1 -1
  184. package/dist/vue2/lib/icon/icon-constants.cjs.map +1 -1
  185. package/dist/vue2/lib/icon/icon-constants.js.map +1 -1
  186. package/dist/vue2/lib/icon/icon.js +3 -3
  187. package/dist/vue2/lib/illustration/illustration-constants.cjs.map +1 -1
  188. package/dist/vue2/lib/illustration/illustration-constants.js.map +1 -1
  189. package/dist/vue2/lib/image-viewer/image-viewer.cjs.map +1 -1
  190. package/dist/vue2/lib/image-viewer/image-viewer.js.map +1 -1
  191. package/dist/vue2/lib/input/input-constants.cjs.map +1 -1
  192. package/dist/vue2/lib/input/input-constants.js.map +1 -1
  193. package/dist/vue2/lib/input/input.cjs.map +1 -1
  194. package/dist/vue2/lib/input/input.js +8 -8
  195. package/dist/vue2/lib/input/input.js.map +1 -1
  196. package/dist/vue2/lib/input-group/input-group.cjs.map +1 -1
  197. package/dist/vue2/lib/ivr-node/ivr-node-constants.cjs.map +1 -1
  198. package/dist/vue2/lib/ivr-node/ivr-node-constants.js.map +1 -1
  199. package/dist/vue2/lib/ivr-node/ivr-node.cjs +1 -1
  200. package/dist/vue2/lib/ivr-node/ivr-node.cjs.map +1 -1
  201. package/dist/vue2/lib/ivr-node/ivr-node.js +27 -27
  202. package/dist/vue2/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  203. package/dist/vue2/lib/keyboard-shortcut/keyboard-shortcut.js +13 -13
  204. package/dist/vue2/lib/link/link-constants.cjs.map +1 -1
  205. package/dist/vue2/lib/link/link-constants.js.map +1 -1
  206. package/dist/vue2/lib/link/link.cjs.map +1 -1
  207. package/dist/vue2/lib/link/link.js +3 -3
  208. package/dist/vue2/lib/list-item/list-item-constants.cjs.map +1 -1
  209. package/dist/vue2/lib/list-item/list-item-constants.js.map +1 -1
  210. package/dist/vue2/lib/list-item/list-item.cjs.map +1 -1
  211. package/dist/vue2/lib/list-item/list-item.js +1 -1
  212. package/dist/vue2/lib/list-item/list-item.js.map +1 -1
  213. package/dist/vue2/lib/list-item-group/list-item-group-constants.cjs.map +1 -1
  214. package/dist/vue2/lib/list-item-group/list-item-group-constants.js.map +1 -1
  215. package/dist/vue2/lib/list-item-group/list-item-group.cjs.map +1 -1
  216. package/dist/vue2/lib/loader/loader.cjs.map +1 -1
  217. package/dist/vue2/lib/message-input/last-active-nodes.cjs.map +1 -1
  218. package/dist/vue2/lib/message-input/last-active-nodes.js.map +1 -1
  219. package/dist/vue2/lib/message-input/message-input-button.cjs +1 -1
  220. package/dist/vue2/lib/message-input/message-input-button.cjs.map +1 -1
  221. package/dist/vue2/lib/message-input/message-input-button.js +8 -8
  222. package/dist/vue2/lib/message-input/message-input-constants.cjs.map +1 -1
  223. package/dist/vue2/lib/message-input/message-input-constants.js.map +1 -1
  224. package/dist/vue2/lib/message-input/message-input-link.cjs +1 -1
  225. package/dist/vue2/lib/message-input/message-input-link.cjs.map +1 -1
  226. package/dist/vue2/lib/message-input/message-input-link.js +8 -8
  227. package/dist/vue2/lib/message-input/message-input-topbar.cjs.map +1 -1
  228. package/dist/vue2/lib/message-input/message-input-topbar.js +9 -9
  229. package/dist/vue2/lib/message-input/message-input.cjs +1 -1
  230. package/dist/vue2/lib/message-input/message-input.cjs.map +1 -1
  231. package/dist/vue2/lib/message-input/message-input.js +26 -26
  232. package/dist/vue2/lib/message-input/message-input.js.map +1 -1
  233. package/dist/vue2/lib/modal/modal.cjs +1 -1
  234. package/dist/vue2/lib/modal/modal.cjs.map +1 -1
  235. package/dist/vue2/lib/modal/modal.js +12 -12
  236. package/dist/vue2/lib/modal/modal.js.map +1 -1
  237. package/dist/vue2/lib/notice/notice-action.cjs.map +1 -1
  238. package/dist/vue2/lib/notice/notice-constants.cjs.map +1 -1
  239. package/dist/vue2/lib/notice/notice-constants.js.map +1 -1
  240. package/dist/vue2/lib/notice/notice-icon.cjs.map +1 -1
  241. package/dist/vue2/lib/notice/notice-icon.js +9 -9
  242. package/dist/vue2/lib/notice/notice.cjs.map +1 -1
  243. package/dist/vue2/lib/notice/notice.js +3 -3
  244. package/dist/vue2/lib/pagination/pagination.cjs.map +1 -1
  245. package/dist/vue2/lib/pagination/pagination.js +3 -3
  246. package/dist/vue2/lib/pagination/pagination.js.map +1 -1
  247. package/dist/vue2/lib/popover/popover-constants.cjs.map +1 -1
  248. package/dist/vue2/lib/popover/popover-constants.js.map +1 -1
  249. package/dist/vue2/lib/popover/popover-header-footer.cjs.map +1 -1
  250. package/dist/vue2/lib/popover/popover.cjs.map +1 -1
  251. package/dist/vue2/lib/popover/popover.js +14 -14
  252. package/dist/vue2/lib/popover/popover.js.map +1 -1
  253. package/dist/vue2/lib/popover/tippy-utils.cjs.map +1 -1
  254. package/dist/vue2/lib/popover/tippy-utils.js.map +1 -1
  255. package/dist/vue2/lib/presence/presence.cjs.map +1 -1
  256. package/dist/vue2/lib/radio/radio-constants.cjs.map +1 -1
  257. package/dist/vue2/lib/radio/radio-constants.js.map +1 -1
  258. package/dist/vue2/lib/radio/radio.cjs.map +1 -1
  259. package/dist/vue2/lib/radio-group/radio-group.cjs.map +1 -1
  260. package/dist/vue2/lib/radio-group/radios-decorator.cjs.map +1 -1
  261. package/dist/vue2/lib/recipes/eslint.config.cjs.map +1 -1
  262. package/dist/vue2/lib/recipes/eslint.config.js.map +1 -1
  263. package/dist/vue2/lib/rich-text-editor/channel-suggestion.cjs.map +1 -1
  264. package/dist/vue2/lib/rich-text-editor/channel-suggestion.js.map +1 -1
  265. package/dist/vue2/lib/rich-text-editor/mention-suggestion.cjs.map +1 -1
  266. package/dist/vue2/lib/rich-text-editor/mention-suggestion.js.map +1 -1
  267. package/dist/vue2/lib/rich-text-editor/rich-text-editor-constants.cjs.map +1 -1
  268. package/dist/vue2/lib/rich-text-editor/rich-text-editor-constants.js.map +1 -1
  269. package/dist/vue2/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  270. package/dist/vue2/lib/rich-text-editor/rich-text-editor.js +21 -21
  271. package/dist/vue2/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  272. package/dist/vue2/lib/rich-text-editor/slash-command-suggestion.cjs.map +1 -1
  273. package/dist/vue2/lib/rich-text-editor/slash-command-suggestion.js.map +1 -1
  274. package/dist/vue2/lib/root-layout/root-layout-constants.cjs.map +1 -1
  275. package/dist/vue2/lib/root-layout/root-layout-constants.js.map +1 -1
  276. package/dist/vue2/lib/root-layout/root-layout.cjs.map +1 -1
  277. package/dist/vue2/lib/root-layout/root-layout.js +1 -1
  278. package/dist/vue2/lib/scrollbar-directive/scrollbar.cjs.map +1 -1
  279. package/dist/vue2/lib/scrollbar-directive/scrollbar.js.map +1 -1
  280. package/dist/vue2/lib/select-menu/select-menu-constants.cjs.map +1 -1
  281. package/dist/vue2/lib/select-menu/select-menu-constants.js.map +1 -1
  282. package/dist/vue2/lib/select-menu/select-menu.cjs.map +1 -1
  283. package/dist/vue2/lib/select-menu/select-menu.js +7 -7
  284. package/dist/vue2/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  285. package/dist/vue2/lib/skeleton/skeleton-constants.cjs.map +1 -1
  286. package/dist/vue2/lib/skeleton/skeleton-constants.js.map +1 -1
  287. package/dist/vue2/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  288. package/dist/vue2/lib/skeleton/skeleton-paragraph.cjs.map +1 -1
  289. package/dist/vue2/lib/skeleton/skeleton-paragraph.js.map +1 -1
  290. package/dist/vue2/lib/skeleton/skeleton-shape.cjs.map +1 -1
  291. package/dist/vue2/lib/skeleton/skeleton-shape.js +1 -1
  292. package/dist/vue2/lib/skeleton/skeleton-text.cjs.map +1 -1
  293. package/dist/vue2/lib/skeleton/skeleton.cjs.map +1 -1
  294. package/dist/vue2/lib/split-button/split-button-alpha.cjs.map +1 -1
  295. package/dist/vue2/lib/split-button/split-button-constants.cjs.map +1 -1
  296. package/dist/vue2/lib/split-button/split-button-constants.js.map +1 -1
  297. package/dist/vue2/lib/split-button/split-button-omega.cjs.map +1 -1
  298. package/dist/vue2/lib/split-button/split-button.cjs.map +1 -1
  299. package/dist/vue2/lib/split-button/split-button.js +5 -5
  300. package/dist/vue2/lib/split-button/split-button.js.map +1 -1
  301. package/dist/vue2/lib/stack/stack-constants.cjs.map +1 -1
  302. package/dist/vue2/lib/stack/stack-constants.js.map +1 -1
  303. package/dist/vue2/lib/stack/stack.cjs.map +1 -1
  304. package/dist/vue2/lib/stack/stack.js +9 -9
  305. package/dist/vue2/lib/stack/utils.cjs.map +1 -1
  306. package/dist/vue2/lib/stack/utils.js.map +1 -1
  307. package/dist/vue2/lib/stack/validators.cjs.map +1 -1
  308. package/dist/vue2/lib/stack/validators.js.map +1 -1
  309. package/dist/vue2/lib/tab/tab-group.cjs.map +1 -1
  310. package/dist/vue2/lib/tab/tab-group.js +5 -5
  311. package/dist/vue2/lib/tab/tab-group.js.map +1 -1
  312. package/dist/vue2/lib/tab/tab.cjs.map +1 -1
  313. package/dist/vue2/lib/toast/toast-constants.cjs.map +1 -1
  314. package/dist/vue2/lib/toast/toast-constants.js.map +1 -1
  315. package/dist/vue2/lib/toast/toast.cjs +1 -1
  316. package/dist/vue2/lib/toast/toast.cjs.map +1 -1
  317. package/dist/vue2/lib/toast/toast.js +11 -11
  318. package/dist/vue2/lib/toggle/toggle-constants.cjs.map +1 -1
  319. package/dist/vue2/lib/toggle/toggle-constants.js.map +1 -1
  320. package/dist/vue2/lib/toggle/toggle.cjs.map +1 -1
  321. package/dist/vue2/lib/tooltip/tooltip-constants.cjs.map +1 -1
  322. package/dist/vue2/lib/tooltip/tooltip-constants.js.map +1 -1
  323. package/dist/vue2/lib/tooltip/tooltip.cjs +1 -1
  324. package/dist/vue2/lib/tooltip/tooltip.cjs.map +1 -1
  325. package/dist/vue2/lib/tooltip/tooltip.js +62 -63
  326. package/dist/vue2/lib/tooltip/tooltip.js.map +1 -1
  327. package/dist/vue2/lib/tooltip-directive/tooltip.cjs.map +1 -1
  328. package/dist/vue2/lib/tooltip-directive/tooltip.js.map +1 -1
  329. package/dist/vue2/lib/top-banner-info/top-banner-info-constants.cjs.map +1 -1
  330. package/dist/vue2/lib/top-banner-info/top-banner-info-constants.js.map +1 -1
  331. package/dist/vue2/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  332. package/dist/vue2/lib/unread-pill/unread-pill-constants.cjs.map +1 -1
  333. package/dist/vue2/lib/unread-pill/unread-pill-constants.js.map +1 -1
  334. package/dist/vue2/lib/unread-pill/unread-pill.cjs.map +1 -1
  335. package/dist/vue2/lib/unread-pill/unread-pill.js +6 -6
  336. package/dist/vue2/lib/validation-messages/validation-messages.cjs.map +1 -1
  337. package/dist/vue2/lib/validation-messages/validation-messages.js +3 -3
  338. package/dist/vue2/localization/de-DE.cjs.map +1 -1
  339. package/dist/vue2/localization/de-DE.js.map +1 -1
  340. package/dist/vue2/localization/en-US.cjs +1 -1
  341. package/dist/vue2/localization/en-US.cjs.map +1 -1
  342. package/dist/vue2/localization/en-US.js +1 -1
  343. package/dist/vue2/localization/en-US.js.map +1 -1
  344. package/dist/vue2/localization/es-LA.cjs.map +1 -1
  345. package/dist/vue2/localization/es-LA.js.map +1 -1
  346. package/dist/vue2/localization/fr-FR.cjs.map +1 -1
  347. package/dist/vue2/localization/fr-FR.js.map +1 -1
  348. package/dist/vue2/localization/index.cjs.map +1 -1
  349. package/dist/vue2/localization/index.js.map +1 -1
  350. package/dist/vue2/localization/it-IT.cjs.map +1 -1
  351. package/dist/vue2/localization/it-IT.js.map +1 -1
  352. package/dist/vue2/localization/ja-JP.cjs.map +1 -1
  353. package/dist/vue2/localization/ja-JP.js.map +1 -1
  354. package/dist/vue2/localization/nl-NL.cjs.map +1 -1
  355. package/dist/vue2/localization/nl-NL.js.map +1 -1
  356. package/dist/vue2/localization/pt-BR.cjs.map +1 -1
  357. package/dist/vue2/localization/pt-BR.js.map +1 -1
  358. package/dist/vue2/localization/ru-RU.cjs.map +1 -1
  359. package/dist/vue2/localization/ru-RU.js.map +1 -1
  360. package/dist/vue2/localization/zh-CN.cjs.map +1 -1
  361. package/dist/vue2/localization/zh-CN.js.map +1 -1
  362. package/dist/vue2/node_modules/@linusborg/vue-simple-portal.cjs.map +1 -1
  363. package/dist/vue2/node_modules/@linusborg/vue-simple-portal.js.map +1 -1
  364. package/dist/vue2/node_modules/@tiptap/vue-2.cjs.map +1 -1
  365. package/dist/vue2/node_modules/@tiptap/vue-2.js.map +1 -1
  366. package/dist/vue2/shared/sr_only_close_button.cjs.map +1 -1
  367. package/dist/vue2/types/common/constants/index.d.ts.map +1 -1
  368. package/dist/vue2/types/common/dates/index.d.ts.map +1 -1
  369. package/dist/vue2/types/common/emoji/index.d.ts +1 -0
  370. package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
  371. package/dist/vue2/types/common/mixins/dom.d.ts.map +1 -1
  372. package/dist/vue2/types/common/mixins/input.d.ts +7 -7
  373. package/dist/vue2/types/common/mixins/input.d.ts.map +1 -1
  374. package/dist/vue2/types/common/mixins/input_group.d.ts +3 -3
  375. package/dist/vue2/types/common/mixins/modal.d.ts.map +1 -1
  376. package/dist/vue2/types/common/utils/index.d.ts.map +1 -1
  377. package/dist/vue2/types/components/avatar/avatar.vue.d.ts +8 -8
  378. package/dist/vue2/types/components/badge/badge.vue.d.ts +3 -3
  379. package/dist/vue2/types/components/banner/banner.vue.d.ts +2 -2
  380. package/dist/vue2/types/components/banner/banner.vue.d.ts.map +1 -1
  381. package/dist/vue2/types/components/breadcrumbs/breadcrumbs.vue.d.ts +1 -1
  382. package/dist/vue2/types/components/breadcrumbs/breadcrumbs_constants.d.ts.map +1 -1
  383. package/dist/vue2/types/components/button/button.vue.d.ts +2 -2
  384. package/dist/vue2/types/components/button/button_constants.d.ts.map +1 -1
  385. package/dist/vue2/types/components/card/card.vue.d.ts +8 -8
  386. package/dist/vue2/types/components/checkbox/checkbox.vue.d.ts +7 -7
  387. package/dist/vue2/types/components/checkbox_group/checkbox_group.vue.d.ts +3 -3
  388. package/dist/vue2/types/components/chip/chip.vue.d.ts +6 -6
  389. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts +4 -4
  390. package/dist/vue2/types/components/combobox/combobox.vue.d.ts +3 -3
  391. package/dist/vue2/types/components/combobox/combobox_empty-list.vue.d.ts +2 -2
  392. package/dist/vue2/types/components/datepicker/datepicker_constants.d.ts.map +1 -1
  393. package/dist/vue2/types/components/datepicker/formatUtils.d.ts +5 -5
  394. package/dist/vue2/types/components/datepicker/formatUtils.d.ts.map +1 -1
  395. package/dist/vue2/types/components/description_list/description_list.vue.d.ts +4 -4
  396. package/dist/vue2/types/components/dropdown/dropdown.vue.d.ts +8 -8
  397. package/dist/vue2/types/components/emoji/emoji.vue.d.ts +2 -2
  398. package/dist/vue2/types/components/emoji_picker/emoji_picker_constants.d.ts.map +1 -1
  399. package/dist/vue2/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  400. package/dist/vue2/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  401. package/dist/vue2/types/components/input/input.vue.d.ts +7 -7
  402. package/dist/vue2/types/components/input_group/input_group.vue.d.ts +3 -3
  403. package/dist/vue2/types/components/item_layout/item_layout.vue.d.ts +1 -1
  404. package/dist/vue2/types/components/link/link_constants.d.ts.map +1 -1
  405. package/dist/vue2/types/components/list_item/list_item.vue.d.ts +2 -2
  406. package/dist/vue2/types/components/list_item_group/list_item_group.vue.d.ts +4 -4
  407. package/dist/vue2/types/components/modal/modal.vue.d.ts +13 -13
  408. package/dist/vue2/types/components/modal/modal.vue.d.ts.map +1 -1
  409. package/dist/vue2/types/components/notice/notice.vue.d.ts +2 -2
  410. package/dist/vue2/types/components/popover/popover.vue.d.ts +20 -20
  411. package/dist/vue2/types/components/popover/popover.vue.d.ts.map +1 -1
  412. package/dist/vue2/types/components/popover/popover_header_footer.vue.d.ts +2 -2
  413. package/dist/vue2/types/components/popover/tippy_utils.d.ts +1 -1
  414. package/dist/vue2/types/components/radio/radio.vue.d.ts +7 -7
  415. package/dist/vue2/types/components/radio_group/radio_group.vue.d.ts +3 -3
  416. package/dist/vue2/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts +1 -1
  417. package/dist/vue2/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts.map +1 -1
  418. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +11 -11
  419. package/dist/vue2/types/components/root_layout/root_layout.vue.d.ts +8 -8
  420. package/dist/vue2/types/components/select_menu/select_menu.vue.d.ts +10 -10
  421. package/dist/vue2/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  422. package/dist/vue2/types/components/skeleton/skeleton-paragraph.vue.d.ts +1 -1
  423. package/dist/vue2/types/components/skeleton/skeleton-shape.vue.d.ts +3 -3
  424. package/dist/vue2/types/components/skeleton/skeleton-text.vue.d.ts +1 -1
  425. package/dist/vue2/types/components/skeleton/skeleton.vue.d.ts +7 -7
  426. package/dist/vue2/types/components/skeleton/skeleton_constants.d.ts.map +1 -1
  427. package/dist/vue2/types/components/split_button/split_button-alpha.vue.d.ts +3 -3
  428. package/dist/vue2/types/components/split_button/split_button-omega.vue.d.ts +1 -1
  429. package/dist/vue2/types/components/split_button/split_button.vue.d.ts +2 -2
  430. package/dist/vue2/types/components/tab/tab.vue.d.ts +2 -2
  431. package/dist/vue2/types/components/tab/tab_group.vue.d.ts +2 -2
  432. package/dist/vue2/types/components/tab/tab_panel.vue.d.ts +2 -2
  433. package/dist/vue2/types/components/tab/tab_panel.vue.d.ts.map +1 -1
  434. package/dist/vue2/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +2 -2
  435. package/dist/vue2/types/components/toast/layouts/toast_layout_default.vue.d.ts +2 -2
  436. package/dist/vue2/types/components/toast/toast.vue.d.ts +7 -7
  437. package/dist/vue2/types/components/toast/toast_constants.d.ts.map +1 -1
  438. package/dist/vue2/types/components/toggle/toggle.vue.d.ts +4 -4
  439. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +8 -8
  440. package/dist/vue2/types/components/tooltip/tooltip_constants.d.ts.map +1 -1
  441. package/dist/vue2/types/components/validation_messages/validation_messages.vue.d.ts +0 -1
  442. package/dist/vue2/types/components/validation_messages/validation_messages.vue.d.ts.map +1 -1
  443. package/dist/vue2/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +6 -6
  444. package/dist/vue2/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +5 -5
  445. package/dist/vue2/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +6 -6
  446. package/dist/vue2/types/recipes/cards/ivr_node/ivr_node_constants.d.ts.map +1 -1
  447. package/dist/vue2/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  448. package/dist/vue2/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +7 -7
  449. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +3 -3
  450. package/dist/vue2/types/recipes/conversation_view/editor/editor_constants.d.ts.map +1 -1
  451. package/dist/vue2/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  452. package/dist/vue2/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +4 -4
  453. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  454. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  455. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row_constants.d.ts.map +1 -1
  456. package/dist/vue2/types/recipes/conversation_view/message_input/last_active_nodes.d.ts.map +1 -1
  457. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +15 -15
  458. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +1 -1
  459. package/dist/vue2/types/recipes/leftbar/callbox/callbox.vue.d.ts +1 -1
  460. package/dist/vue2/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +1 -1
  461. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  462. package/dist/vue3/common/constants/index.cjs.map +1 -1
  463. package/dist/vue3/common/constants/index.js.map +1 -1
  464. package/dist/vue3/common/dates/index.cjs.map +1 -1
  465. package/dist/vue3/common/dates/index.js +3 -3
  466. package/dist/vue3/common/dates/index.js.map +1 -1
  467. package/dist/vue3/common/emoji/index.cjs +1 -1
  468. package/dist/vue3/common/emoji/index.cjs.map +1 -1
  469. package/dist/vue3/common/emoji/index.js +46 -39
  470. package/dist/vue3/common/emoji/index.js.map +1 -1
  471. package/dist/vue3/common/mixins/dom.cjs.map +1 -1
  472. package/dist/vue3/common/mixins/dom.js.map +1 -1
  473. package/dist/vue3/common/mixins/input-group.cjs.map +1 -1
  474. package/dist/vue3/common/mixins/input-group.js +5 -5
  475. package/dist/vue3/common/mixins/input-group.js.map +1 -1
  476. package/dist/vue3/common/mixins/input.cjs.map +1 -1
  477. package/dist/vue3/common/mixins/input.js.map +1 -1
  478. package/dist/vue3/common/mixins/keyboard-list-navigation.cjs.map +1 -1
  479. package/dist/vue3/common/mixins/keyboard-list-navigation.js.map +1 -1
  480. package/dist/vue3/common/mixins/modal.cjs.map +1 -1
  481. package/dist/vue3/common/mixins/modal.js.map +1 -1
  482. package/dist/vue3/common/mixins/skeleton.cjs.map +1 -1
  483. package/dist/vue3/common/mixins/skeleton.js.map +1 -1
  484. package/dist/vue3/common/utils/index.cjs.map +1 -1
  485. package/dist/vue3/common/utils/index.js +3 -3
  486. package/dist/vue3/common/utils/index.js.map +1 -1
  487. package/dist/vue3/common/validators/index.cjs.map +1 -1
  488. package/dist/vue3/common/validators/index.js.map +1 -1
  489. package/dist/vue3/dialtone-vue.cjs +1 -1
  490. package/dist/vue3/dialtone-vue.js +363 -362
  491. package/dist/vue3/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  492. package/dist/vue3/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  493. package/dist/vue3/lib/attachment-carousel/attachment-carousel.js +5 -5
  494. package/dist/vue3/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  495. package/dist/vue3/lib/avatar/avatar-constants.cjs.map +1 -1
  496. package/dist/vue3/lib/avatar/avatar-constants.js.map +1 -1
  497. package/dist/vue3/lib/avatar/avatar.cjs.map +1 -1
  498. package/dist/vue3/lib/avatar/avatar.js +11 -11
  499. package/dist/vue3/lib/avatar/avatar.js.map +1 -1
  500. package/dist/vue3/lib/avatar/utils.cjs.map +1 -1
  501. package/dist/vue3/lib/avatar/utils.js.map +1 -1
  502. package/dist/vue3/lib/badge/badge.cjs.map +1 -1
  503. package/dist/vue3/lib/badge/badge.js +12 -12
  504. package/dist/vue3/lib/badge/badge.js.map +1 -1
  505. package/dist/vue3/lib/banner/banner.cjs +1 -1
  506. package/dist/vue3/lib/banner/banner.cjs.map +1 -1
  507. package/dist/vue3/lib/banner/banner.js +7 -7
  508. package/dist/vue3/lib/banner/banner.js.map +1 -1
  509. package/dist/vue3/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  510. package/dist/vue3/lib/breadcrumbs/breadcrumb-item.js +5 -5
  511. package/dist/vue3/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  512. package/dist/vue3/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  513. package/dist/vue3/lib/breadcrumbs/breadcrumbs.js +1 -1
  514. package/dist/vue3/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  515. package/dist/vue3/lib/button/button-constants.cjs.map +1 -1
  516. package/dist/vue3/lib/button/button-constants.js.map +1 -1
  517. package/dist/vue3/lib/button/button.cjs.map +1 -1
  518. package/dist/vue3/lib/button/button.js +22 -22
  519. package/dist/vue3/lib/button/button.js.map +1 -1
  520. package/dist/vue3/lib/button-group/button-group.cjs.map +1 -1
  521. package/dist/vue3/lib/button-group/button-group.js +2 -2
  522. package/dist/vue3/lib/button-group/button-group.js.map +1 -1
  523. package/dist/vue3/lib/button-group/buttons-decorator.cjs.map +1 -1
  524. package/dist/vue3/lib/button-group/buttons-decorator.js +2 -2
  525. package/dist/vue3/lib/button-group/buttons-decorator.js.map +1 -1
  526. package/dist/vue3/lib/callbar-button/callbar-button-constants.cjs.map +1 -1
  527. package/dist/vue3/lib/callbar-button/callbar-button-constants.js.map +1 -1
  528. package/dist/vue3/lib/callbar-button/callbar-button.cjs +1 -1
  529. package/dist/vue3/lib/callbar-button/callbar-button.cjs.map +1 -1
  530. package/dist/vue3/lib/callbar-button/callbar-button.js +13 -13
  531. package/dist/vue3/lib/callbar-button/callbar-button.js.map +1 -1
  532. package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  533. package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  534. package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +13 -13
  535. package/dist/vue3/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  536. package/dist/vue3/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  537. package/dist/vue3/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  538. package/dist/vue3/lib/callbar-button-with-popover/callbar-button-with-popover.js +13 -13
  539. package/dist/vue3/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  540. package/dist/vue3/lib/callbox/callbox-constants.cjs.map +1 -1
  541. package/dist/vue3/lib/callbox/callbox-constants.js.map +1 -1
  542. package/dist/vue3/lib/callbox/callbox.cjs.map +1 -1
  543. package/dist/vue3/lib/callbox/callbox.js +6 -6
  544. package/dist/vue3/lib/callbox/callbox.js.map +1 -1
  545. package/dist/vue3/lib/card/card.cjs.map +1 -1
  546. package/dist/vue3/lib/card/card.js +4 -4
  547. package/dist/vue3/lib/card/card.js.map +1 -1
  548. package/dist/vue3/lib/checkbox/checkbox-constants.cjs.map +1 -1
  549. package/dist/vue3/lib/checkbox/checkbox-constants.js.map +1 -1
  550. package/dist/vue3/lib/checkbox/checkbox.cjs.map +1 -1
  551. package/dist/vue3/lib/checkbox/checkbox.js +8 -8
  552. package/dist/vue3/lib/checkbox/checkbox.js.map +1 -1
  553. package/dist/vue3/lib/checkbox-group/checkbox-group.cjs.map +1 -1
  554. package/dist/vue3/lib/checkbox-group/checkbox-group.js.map +1 -1
  555. package/dist/vue3/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
  556. package/dist/vue3/lib/checkbox-group/checkboxes-decorator.js +1 -1
  557. package/dist/vue3/lib/checkbox-group/checkboxes-decorator.js.map +1 -1
  558. package/dist/vue3/lib/chip/chip-constants.cjs.map +1 -1
  559. package/dist/vue3/lib/chip/chip-constants.js.map +1 -1
  560. package/dist/vue3/lib/chip/chip.cjs.map +1 -1
  561. package/dist/vue3/lib/chip/chip.js +13 -13
  562. package/dist/vue3/lib/chip/chip.js.map +1 -1
  563. package/dist/vue3/lib/codeblock/codeblock.cjs.map +1 -1
  564. package/dist/vue3/lib/codeblock/codeblock.js +2 -2
  565. package/dist/vue3/lib/codeblock/codeblock.js.map +1 -1
  566. package/dist/vue3/lib/collapsible/collapsible-lazy-show.cjs.map +1 -1
  567. package/dist/vue3/lib/collapsible/collapsible-lazy-show.js +3 -3
  568. package/dist/vue3/lib/collapsible/collapsible-lazy-show.js.map +1 -1
  569. package/dist/vue3/lib/collapsible/collapsible.cjs +1 -1
  570. package/dist/vue3/lib/collapsible/collapsible.cjs.map +1 -1
  571. package/dist/vue3/lib/collapsible/collapsible.js +18 -18
  572. package/dist/vue3/lib/collapsible/collapsible.js.map +1 -1
  573. package/dist/vue3/lib/combobox/combobox-constants.cjs.map +1 -1
  574. package/dist/vue3/lib/combobox/combobox-constants.js.map +1 -1
  575. package/dist/vue3/lib/combobox/combobox-empty-list.cjs.map +1 -1
  576. package/dist/vue3/lib/combobox/combobox-empty-list.js +2 -2
  577. package/dist/vue3/lib/combobox/combobox-empty-list.js.map +1 -1
  578. package/dist/vue3/lib/combobox/combobox-loading-list.cjs +1 -1
  579. package/dist/vue3/lib/combobox/combobox-loading-list.cjs.map +1 -1
  580. package/dist/vue3/lib/combobox/combobox-loading-list.js +6 -6
  581. package/dist/vue3/lib/combobox/combobox-loading-list.js.map +1 -1
  582. package/dist/vue3/lib/combobox/combobox.cjs.map +1 -1
  583. package/dist/vue3/lib/combobox/combobox.js +7 -7
  584. package/dist/vue3/lib/combobox/combobox.js.map +1 -1
  585. package/dist/vue3/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  586. package/dist/vue3/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  587. package/dist/vue3/lib/combobox-multi-select/combobox-multi-select-story-constants.cjs.map +1 -1
  588. package/dist/vue3/lib/combobox-multi-select/combobox-multi-select-story-constants.js.map +1 -1
  589. package/dist/vue3/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  590. package/dist/vue3/lib/combobox-multi-select/combobox-multi-select.js +15 -15
  591. package/dist/vue3/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  592. package/dist/vue3/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  593. package/dist/vue3/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  594. package/dist/vue3/lib/combobox-with-popover/combobox-with-popover.js +13 -13
  595. package/dist/vue3/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  596. package/dist/vue3/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  597. package/dist/vue3/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  598. package/dist/vue3/lib/contact-centers-row/contact-centers-row.js +19 -19
  599. package/dist/vue3/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  600. package/dist/vue3/lib/contact-info/contact-info.cjs.map +1 -1
  601. package/dist/vue3/lib/contact-info/contact-info.js +1 -1
  602. package/dist/vue3/lib/contact-info/contact-info.js.map +1 -1
  603. package/dist/vue3/lib/contact-row/contact-row.cjs +1 -1
  604. package/dist/vue3/lib/contact-row/contact-row.cjs.map +1 -1
  605. package/dist/vue3/lib/contact-row/contact-row.js +12 -12
  606. package/dist/vue3/lib/contact-row/contact-row.js.map +1 -1
  607. package/dist/vue3/lib/datepicker/datepicker.cjs.map +1 -1
  608. package/dist/vue3/lib/datepicker/datepicker.js +5 -5
  609. package/dist/vue3/lib/datepicker/datepicker.js.map +1 -1
  610. package/dist/vue3/lib/datepicker/formatUtils.cjs.map +1 -1
  611. package/dist/vue3/lib/datepicker/formatUtils.js.map +1 -1
  612. package/dist/vue3/lib/datepicker/utils.cjs.map +1 -1
  613. package/dist/vue3/lib/datepicker/utils.js.map +1 -1
  614. package/dist/vue3/lib/description-list/description-list.cjs.map +1 -1
  615. package/dist/vue3/lib/description-list/description-list.js +3 -3
  616. package/dist/vue3/lib/description-list/description-list.js.map +1 -1
  617. package/dist/vue3/lib/dropdown/dropdown-constants.cjs.map +1 -1
  618. package/dist/vue3/lib/dropdown/dropdown-constants.js.map +1 -1
  619. package/dist/vue3/lib/dropdown/dropdown-list.cjs.map +1 -1
  620. package/dist/vue3/lib/dropdown/dropdown-list.js +5 -5
  621. package/dist/vue3/lib/dropdown/dropdown-list.js.map +1 -1
  622. package/dist/vue3/lib/dropdown/dropdown-separator.cjs.map +1 -1
  623. package/dist/vue3/lib/dropdown/dropdown-separator.js +2 -2
  624. package/dist/vue3/lib/dropdown/dropdown-separator.js.map +1 -1
  625. package/dist/vue3/lib/dropdown/dropdown-story-constants.cjs.map +1 -1
  626. package/dist/vue3/lib/dropdown/dropdown-story-constants.js.map +1 -1
  627. package/dist/vue3/lib/dropdown/dropdown.cjs +1 -1
  628. package/dist/vue3/lib/dropdown/dropdown.cjs.map +1 -1
  629. package/dist/vue3/lib/dropdown/dropdown.js +3 -3
  630. package/dist/vue3/lib/dropdown/dropdown.js.map +1 -1
  631. package/dist/vue3/lib/editor/editor-constants.cjs.map +1 -1
  632. package/dist/vue3/lib/editor/editor-constants.js.map +1 -1
  633. package/dist/vue3/lib/editor/editor.cjs +1 -1
  634. package/dist/vue3/lib/editor/editor.cjs.map +1 -1
  635. package/dist/vue3/lib/editor/editor.js +48 -48
  636. package/dist/vue3/lib/editor/editor.js.map +1 -1
  637. package/dist/vue3/lib/emoji/emoji.cjs.map +1 -1
  638. package/dist/vue3/lib/emoji/emoji.js +6 -6
  639. package/dist/vue3/lib/emoji/emoji.js.map +1 -1
  640. package/dist/vue3/lib/emoji-picker/emoji-picker-constants.cjs.map +1 -1
  641. package/dist/vue3/lib/emoji-picker/emoji-picker-constants.js.map +1 -1
  642. package/dist/vue3/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  643. package/dist/vue3/lib/emoji-picker/emoji-picker.js +2 -2
  644. package/dist/vue3/lib/emoji-picker/emoji-picker.js.map +1 -1
  645. package/dist/vue3/lib/emoji-row/emoji-row-constants.cjs.map +1 -1
  646. package/dist/vue3/lib/emoji-row/emoji-row-constants.js.map +1 -1
  647. package/dist/vue3/lib/emoji-row/emoji-row.cjs +1 -1
  648. package/dist/vue3/lib/emoji-row/emoji-row.cjs.map +1 -1
  649. package/dist/vue3/lib/emoji-row/emoji-row.js +59 -50
  650. package/dist/vue3/lib/emoji-row/emoji-row.js.map +1 -1
  651. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
  652. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  653. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.js +1 -0
  654. package/dist/vue3/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  655. package/dist/vue3/lib/empty-state/empty-state-constants.cjs.map +1 -1
  656. package/dist/vue3/lib/empty-state/empty-state-constants.js.map +1 -1
  657. package/dist/vue3/lib/empty-state/empty-state.cjs.map +1 -1
  658. package/dist/vue3/lib/empty-state/empty-state.js +7 -7
  659. package/dist/vue3/lib/feed-item-pill/feed-item-pill-constants.cjs.map +1 -1
  660. package/dist/vue3/lib/feed-item-pill/feed-item-pill-constants.js.map +1 -1
  661. package/dist/vue3/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  662. package/dist/vue3/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  663. package/dist/vue3/lib/feed-item-pill/feed-item-pill.js +6 -6
  664. package/dist/vue3/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  665. package/dist/vue3/lib/feed-item-row/feed-item-row-constants.cjs.map +1 -1
  666. package/dist/vue3/lib/feed-item-row/feed-item-row-constants.js.map +1 -1
  667. package/dist/vue3/lib/feed-item-row/feed-item-row.cjs +1 -1
  668. package/dist/vue3/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  669. package/dist/vue3/lib/feed-item-row/feed-item-row.js +29 -29
  670. package/dist/vue3/lib/feed-item-row/feed-item-row.js.map +1 -1
  671. package/dist/vue3/lib/general-row/general-row-constants.cjs.map +1 -1
  672. package/dist/vue3/lib/general-row/general-row-constants.js.map +1 -1
  673. package/dist/vue3/lib/general-row/general-row.cjs +1 -1
  674. package/dist/vue3/lib/general-row/general-row.cjs.map +1 -1
  675. package/dist/vue3/lib/general-row/general-row.js +30 -30
  676. package/dist/vue3/lib/general-row/general-row.js.map +1 -1
  677. package/dist/vue3/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  678. package/dist/vue3/lib/general-row/leftbar-general-row-icon.js +35 -35
  679. package/dist/vue3/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  680. package/dist/vue3/lib/group-row/group-row.cjs.map +1 -1
  681. package/dist/vue3/lib/group-row/group-row.js +3 -3
  682. package/dist/vue3/lib/group-row/group-row.js.map +1 -1
  683. package/dist/vue3/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  684. package/dist/vue3/lib/grouped-chip/grouped-chip.js +14 -14
  685. package/dist/vue3/lib/grouped-chip/grouped-chip.js.map +1 -1
  686. package/dist/vue3/lib/hovercard/hovercard.cjs +1 -1
  687. package/dist/vue3/lib/hovercard/hovercard.cjs.map +1 -1
  688. package/dist/vue3/lib/hovercard/hovercard.js +6 -6
  689. package/dist/vue3/lib/hovercard/hovercard.js.map +1 -1
  690. package/dist/vue3/lib/icon/icon-constants.cjs.map +1 -1
  691. package/dist/vue3/lib/icon/icon-constants.js.map +1 -1
  692. package/dist/vue3/lib/icon/icon.cjs.map +1 -1
  693. package/dist/vue3/lib/icon/icon.js +6 -6
  694. package/dist/vue3/lib/icon/icon.js.map +1 -1
  695. package/dist/vue3/lib/illustration/illustration-constants.cjs.map +1 -1
  696. package/dist/vue3/lib/illustration/illustration-constants.js.map +1 -1
  697. package/dist/vue3/lib/illustration/illustration.cjs.map +1 -1
  698. package/dist/vue3/lib/illustration/illustration.js +3 -3
  699. package/dist/vue3/lib/image-viewer/image-viewer.cjs.map +1 -1
  700. package/dist/vue3/lib/image-viewer/image-viewer.js +12 -12
  701. package/dist/vue3/lib/image-viewer/image-viewer.js.map +1 -1
  702. package/dist/vue3/lib/input/input-constants.cjs.map +1 -1
  703. package/dist/vue3/lib/input/input-constants.js.map +1 -1
  704. package/dist/vue3/lib/input/input.cjs.map +1 -1
  705. package/dist/vue3/lib/input/input.js +20 -20
  706. package/dist/vue3/lib/input/input.js.map +1 -1
  707. package/dist/vue3/lib/input-group/input-group.cjs.map +1 -1
  708. package/dist/vue3/lib/input-group/input-group.js +8 -8
  709. package/dist/vue3/lib/input-group/input-group.js.map +1 -1
  710. package/dist/vue3/lib/item-layout/item-layout.cjs.map +1 -1
  711. package/dist/vue3/lib/item-layout/item-layout.js +13 -13
  712. package/dist/vue3/lib/item-layout/item-layout.js.map +1 -1
  713. package/dist/vue3/lib/ivr-node/ivr-node-constants.cjs.map +1 -1
  714. package/dist/vue3/lib/ivr-node/ivr-node-constants.js.map +1 -1
  715. package/dist/vue3/lib/ivr-node/ivr-node.cjs +1 -1
  716. package/dist/vue3/lib/ivr-node/ivr-node.cjs.map +1 -1
  717. package/dist/vue3/lib/ivr-node/ivr-node.js +36 -36
  718. package/dist/vue3/lib/ivr-node/ivr-node.js.map +1 -1
  719. package/dist/vue3/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  720. package/dist/vue3/lib/keyboard-shortcut/keyboard-shortcut.js +15 -15
  721. package/dist/vue3/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  722. package/dist/vue3/lib/lazy-show/lazy-show.cjs.map +1 -1
  723. package/dist/vue3/lib/lazy-show/lazy-show.js +2 -2
  724. package/dist/vue3/lib/lazy-show/lazy-show.js.map +1 -1
  725. package/dist/vue3/lib/link/link-constants.cjs.map +1 -1
  726. package/dist/vue3/lib/link/link-constants.js.map +1 -1
  727. package/dist/vue3/lib/link/link.cjs.map +1 -1
  728. package/dist/vue3/lib/link/link.js +5 -5
  729. package/dist/vue3/lib/link/link.js.map +1 -1
  730. package/dist/vue3/lib/list-item/list-item-constants.cjs.map +1 -1
  731. package/dist/vue3/lib/list-item/list-item-constants.js.map +1 -1
  732. package/dist/vue3/lib/list-item/list-item.cjs.map +1 -1
  733. package/dist/vue3/lib/list-item/list-item.js +4 -4
  734. package/dist/vue3/lib/list-item/list-item.js.map +1 -1
  735. package/dist/vue3/lib/list-item-group/list-item-group-constants.cjs.map +1 -1
  736. package/dist/vue3/lib/list-item-group/list-item-group-constants.js.map +1 -1
  737. package/dist/vue3/lib/list-item-group/list-item-group.cjs.map +1 -1
  738. package/dist/vue3/lib/list-item-group/list-item-group.js +5 -5
  739. package/dist/vue3/lib/list-item-group/list-item-group.js.map +1 -1
  740. package/dist/vue3/lib/loader/loader.cjs.map +1 -1
  741. package/dist/vue3/lib/loader/loader.js +2 -2
  742. package/dist/vue3/lib/loader/loader.js.map +1 -1
  743. package/dist/vue3/lib/message-input/last-active-nodes.cjs.map +1 -1
  744. package/dist/vue3/lib/message-input/last-active-nodes.js.map +1 -1
  745. package/dist/vue3/lib/message-input/message-input-button.cjs +1 -1
  746. package/dist/vue3/lib/message-input/message-input-button.cjs.map +1 -1
  747. package/dist/vue3/lib/message-input/message-input-button.js +14 -14
  748. package/dist/vue3/lib/message-input/message-input-button.js.map +1 -1
  749. package/dist/vue3/lib/message-input/message-input-constants.cjs.map +1 -1
  750. package/dist/vue3/lib/message-input/message-input-constants.js.map +1 -1
  751. package/dist/vue3/lib/message-input/message-input-link.cjs +1 -1
  752. package/dist/vue3/lib/message-input/message-input-link.cjs.map +1 -1
  753. package/dist/vue3/lib/message-input/message-input-link.js +10 -10
  754. package/dist/vue3/lib/message-input/message-input-link.js.map +1 -1
  755. package/dist/vue3/lib/message-input/message-input-topbar.cjs.map +1 -1
  756. package/dist/vue3/lib/message-input/message-input-topbar.js +11 -11
  757. package/dist/vue3/lib/message-input/message-input-topbar.js.map +1 -1
  758. package/dist/vue3/lib/message-input/message-input.cjs +1 -1
  759. package/dist/vue3/lib/message-input/message-input.cjs.map +1 -1
  760. package/dist/vue3/lib/message-input/message-input.js +30 -30
  761. package/dist/vue3/lib/message-input/message-input.js.map +1 -1
  762. package/dist/vue3/lib/modal/modal.cjs +1 -1
  763. package/dist/vue3/lib/modal/modal.cjs.map +1 -1
  764. package/dist/vue3/lib/modal/modal.js +14 -14
  765. package/dist/vue3/lib/modal/modal.js.map +1 -1
  766. package/dist/vue3/lib/notice/notice-action.cjs.map +1 -1
  767. package/dist/vue3/lib/notice/notice-action.js +1 -1
  768. package/dist/vue3/lib/notice/notice-action.js.map +1 -1
  769. package/dist/vue3/lib/notice/notice-constants.cjs.map +1 -1
  770. package/dist/vue3/lib/notice/notice-constants.js.map +1 -1
  771. package/dist/vue3/lib/notice/notice-content.cjs.map +1 -1
  772. package/dist/vue3/lib/notice/notice-content.js +6 -6
  773. package/dist/vue3/lib/notice/notice-content.js.map +1 -1
  774. package/dist/vue3/lib/notice/notice-icon.cjs.map +1 -1
  775. package/dist/vue3/lib/notice/notice-icon.js +13 -13
  776. package/dist/vue3/lib/notice/notice-icon.js.map +1 -1
  777. package/dist/vue3/lib/notice/notice.cjs.map +1 -1
  778. package/dist/vue3/lib/notice/notice.js +4 -4
  779. package/dist/vue3/lib/notice/notice.js.map +1 -1
  780. package/dist/vue3/lib/pagination/pagination.cjs.map +1 -1
  781. package/dist/vue3/lib/pagination/pagination.js +4 -4
  782. package/dist/vue3/lib/pagination/pagination.js.map +1 -1
  783. package/dist/vue3/lib/popover/popover-constants.cjs.map +1 -1
  784. package/dist/vue3/lib/popover/popover-constants.js.map +1 -1
  785. package/dist/vue3/lib/popover/popover-header-footer.cjs.map +1 -1
  786. package/dist/vue3/lib/popover/popover-header-footer.js +6 -6
  787. package/dist/vue3/lib/popover/popover-header-footer.js.map +1 -1
  788. package/dist/vue3/lib/popover/popover.cjs.map +1 -1
  789. package/dist/vue3/lib/popover/popover.js +15 -15
  790. package/dist/vue3/lib/popover/popover.js.map +1 -1
  791. package/dist/vue3/lib/popover/tippy-utils.cjs.map +1 -1
  792. package/dist/vue3/lib/popover/tippy-utils.js.map +1 -1
  793. package/dist/vue3/lib/presence/presence.cjs.map +1 -1
  794. package/dist/vue3/lib/presence/presence.js +4 -4
  795. package/dist/vue3/lib/presence/presence.js.map +1 -1
  796. package/dist/vue3/lib/radio/radio-constants.cjs.map +1 -1
  797. package/dist/vue3/lib/radio/radio-constants.js.map +1 -1
  798. package/dist/vue3/lib/radio/radio.cjs.map +1 -1
  799. package/dist/vue3/lib/radio/radio.js +13 -13
  800. package/dist/vue3/lib/radio/radio.js.map +1 -1
  801. package/dist/vue3/lib/radio-group/radio-group.cjs.map +1 -1
  802. package/dist/vue3/lib/radio-group/radio-group.js.map +1 -1
  803. package/dist/vue3/lib/radio-group/radios-decorator.cjs.map +1 -1
  804. package/dist/vue3/lib/radio-group/radios-decorator.js +1 -1
  805. package/dist/vue3/lib/radio-group/radios-decorator.js.map +1 -1
  806. package/dist/vue3/lib/recipes/eslint.config.cjs.map +1 -1
  807. package/dist/vue3/lib/recipes/eslint.config.js.map +1 -1
  808. package/dist/vue3/lib/rich-text-editor/channel-suggestion.cjs.map +1 -1
  809. package/dist/vue3/lib/rich-text-editor/channel-suggestion.js.map +1 -1
  810. package/dist/vue3/lib/rich-text-editor/mention-suggestion.cjs.map +1 -1
  811. package/dist/vue3/lib/rich-text-editor/mention-suggestion.js.map +1 -1
  812. package/dist/vue3/lib/rich-text-editor/rich-text-editor-constants.cjs.map +1 -1
  813. package/dist/vue3/lib/rich-text-editor/rich-text-editor-constants.js.map +1 -1
  814. package/dist/vue3/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  815. package/dist/vue3/lib/rich-text-editor/rich-text-editor.js +22 -22
  816. package/dist/vue3/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  817. package/dist/vue3/lib/rich-text-editor/slash-command-suggestion.cjs.map +1 -1
  818. package/dist/vue3/lib/rich-text-editor/slash-command-suggestion.js.map +1 -1
  819. package/dist/vue3/lib/root-layout/root-layout-constants.cjs.map +1 -1
  820. package/dist/vue3/lib/root-layout/root-layout-constants.js.map +1 -1
  821. package/dist/vue3/lib/root-layout/root-layout.cjs.map +1 -1
  822. package/dist/vue3/lib/root-layout/root-layout.js +3 -3
  823. package/dist/vue3/lib/root-layout/root-layout.js.map +1 -1
  824. package/dist/vue3/lib/scrollbar-directive/scrollbar.cjs.map +1 -1
  825. package/dist/vue3/lib/scrollbar-directive/scrollbar.js.map +1 -1
  826. package/dist/vue3/lib/scroller/scroller.cjs +1 -1
  827. package/dist/vue3/lib/scroller/scroller.cjs.map +1 -1
  828. package/dist/vue3/lib/scroller/scroller.js +2 -2
  829. package/dist/vue3/lib/scroller/scroller.js.map +1 -1
  830. package/dist/vue3/lib/select-menu/select-menu-constants.cjs.map +1 -1
  831. package/dist/vue3/lib/select-menu/select-menu-constants.js.map +1 -1
  832. package/dist/vue3/lib/select-menu/select-menu.cjs.map +1 -1
  833. package/dist/vue3/lib/select-menu/select-menu.js +21 -21
  834. package/dist/vue3/lib/select-menu/select-menu.js.map +1 -1
  835. package/dist/vue3/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  836. package/dist/vue3/lib/settings-menu-button/settings-menu-button.js +3 -3
  837. package/dist/vue3/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  838. package/dist/vue3/lib/skeleton/skeleton-constants.cjs.map +1 -1
  839. package/dist/vue3/lib/skeleton/skeleton-constants.js.map +1 -1
  840. package/dist/vue3/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  841. package/dist/vue3/lib/skeleton/skeleton-list-item.js +2 -2
  842. package/dist/vue3/lib/skeleton/skeleton-list-item.js.map +1 -1
  843. package/dist/vue3/lib/skeleton/skeleton-paragraph.cjs.map +1 -1
  844. package/dist/vue3/lib/skeleton/skeleton-paragraph.js +1 -1
  845. package/dist/vue3/lib/skeleton/skeleton-paragraph.js.map +1 -1
  846. package/dist/vue3/lib/skeleton/skeleton-shape.cjs.map +1 -1
  847. package/dist/vue3/lib/skeleton/skeleton-shape.js +5 -5
  848. package/dist/vue3/lib/skeleton/skeleton-shape.js.map +1 -1
  849. package/dist/vue3/lib/skeleton/skeleton-text.cjs.map +1 -1
  850. package/dist/vue3/lib/skeleton/skeleton-text.js +7 -7
  851. package/dist/vue3/lib/skeleton/skeleton-text.js.map +1 -1
  852. package/dist/vue3/lib/skeleton/skeleton.cjs.map +1 -1
  853. package/dist/vue3/lib/skeleton/skeleton.js +1 -1
  854. package/dist/vue3/lib/skeleton/skeleton.js.map +1 -1
  855. package/dist/vue3/lib/split-button/split-button-alpha.cjs.map +1 -1
  856. package/dist/vue3/lib/split-button/split-button-alpha.js +2 -2
  857. package/dist/vue3/lib/split-button/split-button-alpha.js.map +1 -1
  858. package/dist/vue3/lib/split-button/split-button-constants.cjs.map +1 -1
  859. package/dist/vue3/lib/split-button/split-button-constants.js.map +1 -1
  860. package/dist/vue3/lib/split-button/split-button-omega.cjs.map +1 -1
  861. package/dist/vue3/lib/split-button/split-button-omega.js +2 -2
  862. package/dist/vue3/lib/split-button/split-button-omega.js.map +1 -1
  863. package/dist/vue3/lib/split-button/split-button.cjs.map +1 -1
  864. package/dist/vue3/lib/split-button/split-button.js +19 -19
  865. package/dist/vue3/lib/split-button/split-button.js.map +1 -1
  866. package/dist/vue3/lib/stack/stack-constants.cjs.map +1 -1
  867. package/dist/vue3/lib/stack/stack-constants.js.map +1 -1
  868. package/dist/vue3/lib/stack/stack.cjs.map +1 -1
  869. package/dist/vue3/lib/stack/stack.js +11 -11
  870. package/dist/vue3/lib/stack/stack.js.map +1 -1
  871. package/dist/vue3/lib/stack/utils.cjs.map +1 -1
  872. package/dist/vue3/lib/stack/utils.js.map +1 -1
  873. package/dist/vue3/lib/stack/validators.cjs.map +1 -1
  874. package/dist/vue3/lib/stack/validators.js +5 -5
  875. package/dist/vue3/lib/stack/validators.js.map +1 -1
  876. package/dist/vue3/lib/tab/tab-group.cjs.map +1 -1
  877. package/dist/vue3/lib/tab/tab-group.js +7 -7
  878. package/dist/vue3/lib/tab/tab-group.js.map +1 -1
  879. package/dist/vue3/lib/tab/tab-panel.cjs.map +1 -1
  880. package/dist/vue3/lib/tab/tab-panel.js +2 -2
  881. package/dist/vue3/lib/tab/tab-panel.js.map +1 -1
  882. package/dist/vue3/lib/tab/tab.cjs.map +1 -1
  883. package/dist/vue3/lib/tab/tab.js +2 -2
  884. package/dist/vue3/lib/tab/tab.js.map +1 -1
  885. package/dist/vue3/lib/time-pill/time-pill.cjs.map +1 -1
  886. package/dist/vue3/lib/time-pill/time-pill.js +2 -2
  887. package/dist/vue3/lib/time-pill/time-pill.js.map +1 -1
  888. package/dist/vue3/lib/toast/toast-constants.cjs.map +1 -1
  889. package/dist/vue3/lib/toast/toast-constants.js.map +1 -1
  890. package/dist/vue3/lib/toast/toast.cjs +1 -1
  891. package/dist/vue3/lib/toast/toast.cjs.map +1 -1
  892. package/dist/vue3/lib/toast/toast.js +91 -83
  893. package/dist/vue3/lib/toast/toast.js.map +1 -1
  894. package/dist/vue3/lib/toggle/toggle-constants.cjs.map +1 -1
  895. package/dist/vue3/lib/toggle/toggle-constants.js.map +1 -1
  896. package/dist/vue3/lib/toggle/toggle.cjs.map +1 -1
  897. package/dist/vue3/lib/toggle/toggle.js +11 -11
  898. package/dist/vue3/lib/toggle/toggle.js.map +1 -1
  899. package/dist/vue3/lib/tooltip/tooltip-constants.cjs.map +1 -1
  900. package/dist/vue3/lib/tooltip/tooltip-constants.js.map +1 -1
  901. package/dist/vue3/lib/tooltip/tooltip.cjs +1 -1
  902. package/dist/vue3/lib/tooltip/tooltip.cjs.map +1 -1
  903. package/dist/vue3/lib/tooltip/tooltip.js +20 -21
  904. package/dist/vue3/lib/tooltip/tooltip.js.map +1 -1
  905. package/dist/vue3/lib/tooltip-directive/tooltip.cjs.map +1 -1
  906. package/dist/vue3/lib/tooltip-directive/tooltip.js +1 -1
  907. package/dist/vue3/lib/tooltip-directive/tooltip.js.map +1 -1
  908. package/dist/vue3/lib/top-banner-info/top-banner-info-constants.cjs.map +1 -1
  909. package/dist/vue3/lib/top-banner-info/top-banner-info-constants.js.map +1 -1
  910. package/dist/vue3/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  911. package/dist/vue3/lib/top-banner-info/top-banner-info.js +2 -2
  912. package/dist/vue3/lib/top-banner-info/top-banner-info.js.map +1 -1
  913. package/dist/vue3/lib/unread-pill/unread-pill-constants.cjs.map +1 -1
  914. package/dist/vue3/lib/unread-pill/unread-pill-constants.js.map +1 -1
  915. package/dist/vue3/lib/unread-pill/unread-pill.cjs.map +1 -1
  916. package/dist/vue3/lib/unread-pill/unread-pill.js +7 -7
  917. package/dist/vue3/lib/unread-pill/unread-pill.js.map +1 -1
  918. package/dist/vue3/lib/validation-messages/validation-messages.cjs.map +1 -1
  919. package/dist/vue3/lib/validation-messages/validation-messages.js +9 -9
  920. package/dist/vue3/lib/validation-messages/validation-messages.js.map +1 -1
  921. package/dist/vue3/localization/de-DE.cjs.map +1 -1
  922. package/dist/vue3/localization/de-DE.js.map +1 -1
  923. package/dist/vue3/localization/en-US.cjs +1 -1
  924. package/dist/vue3/localization/en-US.cjs.map +1 -1
  925. package/dist/vue3/localization/en-US.js +1 -1
  926. package/dist/vue3/localization/en-US.js.map +1 -1
  927. package/dist/vue3/localization/es-LA.cjs.map +1 -1
  928. package/dist/vue3/localization/es-LA.js.map +1 -1
  929. package/dist/vue3/localization/fr-FR.cjs.map +1 -1
  930. package/dist/vue3/localization/fr-FR.js.map +1 -1
  931. package/dist/vue3/localization/index.cjs.map +1 -1
  932. package/dist/vue3/localization/index.js.map +1 -1
  933. package/dist/vue3/localization/it-IT.cjs.map +1 -1
  934. package/dist/vue3/localization/it-IT.js.map +1 -1
  935. package/dist/vue3/localization/ja-JP.cjs.map +1 -1
  936. package/dist/vue3/localization/ja-JP.js.map +1 -1
  937. package/dist/vue3/localization/nl-NL.cjs.map +1 -1
  938. package/dist/vue3/localization/nl-NL.js.map +1 -1
  939. package/dist/vue3/localization/pt-BR.cjs.map +1 -1
  940. package/dist/vue3/localization/pt-BR.js.map +1 -1
  941. package/dist/vue3/localization/ru-RU.cjs.map +1 -1
  942. package/dist/vue3/localization/ru-RU.js.map +1 -1
  943. package/dist/vue3/localization/zh-CN.cjs.map +1 -1
  944. package/dist/vue3/localization/zh-CN.js.map +1 -1
  945. package/dist/vue3/node_modules/@tiptap/vue-3.cjs.map +1 -1
  946. package/dist/vue3/node_modules/@tiptap/vue-3.js +3 -3
  947. package/dist/vue3/node_modules/@tiptap/vue-3.js.map +1 -1
  948. package/dist/vue3/shared/sr_only_close_button.cjs.map +1 -1
  949. package/dist/vue3/shared/sr_only_close_button.js +2 -2
  950. package/dist/vue3/shared/sr_only_close_button.js.map +1 -1
  951. package/dist/vue3/types/common/constants/index.d.ts.map +1 -1
  952. package/dist/vue3/types/common/dates/index.d.ts.map +1 -1
  953. package/dist/vue3/types/common/emoji/index.d.ts +1 -0
  954. package/dist/vue3/types/common/emoji/index.d.ts.map +1 -1
  955. package/dist/vue3/types/common/mixins/dom.d.ts.map +1 -1
  956. package/dist/vue3/types/common/mixins/input.d.ts +6 -6
  957. package/dist/vue3/types/common/mixins/input.d.ts.map +1 -1
  958. package/dist/vue3/types/common/mixins/input_group.d.ts +2 -2
  959. package/dist/vue3/types/common/mixins/modal.d.ts.map +1 -1
  960. package/dist/vue3/types/common/utils/index.d.ts.map +1 -1
  961. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +12 -12
  962. package/dist/vue3/types/components/badge/badge.vue.d.ts +4 -4
  963. package/dist/vue3/types/components/banner/banner.vue.d.ts +1 -1
  964. package/dist/vue3/types/components/banner/banner.vue.d.ts.map +1 -1
  965. package/dist/vue3/types/components/breadcrumbs/breadcrumbs_constants.d.ts.map +1 -1
  966. package/dist/vue3/types/components/button/button.vue.d.ts +3 -3
  967. package/dist/vue3/types/components/button/button_constants.d.ts.map +1 -1
  968. package/dist/vue3/types/components/card/card.vue.d.ts +12 -12
  969. package/dist/vue3/types/components/checkbox/checkbox.vue.d.ts +6 -6
  970. package/dist/vue3/types/components/checkbox_group/checkbox_group.vue.d.ts +2 -2
  971. package/dist/vue3/types/components/chip/chip.vue.d.ts +6 -6
  972. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +6 -6
  973. package/dist/vue3/types/components/combobox/combobox.vue.d.ts +4 -4
  974. package/dist/vue3/types/components/combobox/combobox_empty-list.vue.d.ts +3 -3
  975. package/dist/vue3/types/components/datepicker/datepicker_constants.d.ts.map +1 -1
  976. package/dist/vue3/types/components/datepicker/formatUtils.d.ts +5 -5
  977. package/dist/vue3/types/components/datepicker/formatUtils.d.ts.map +1 -1
  978. package/dist/vue3/types/components/datepicker/modules/calendar.vue.d.ts +1 -1
  979. package/dist/vue3/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
  980. package/dist/vue3/types/components/description_list/description_list.vue.d.ts +6 -6
  981. package/dist/vue3/types/components/dropdown/dropdown.vue.d.ts +10 -10
  982. package/dist/vue3/types/components/emoji/emoji.vue.d.ts +3 -3
  983. package/dist/vue3/types/components/emoji_picker/emoji_picker_constants.d.ts.map +1 -1
  984. package/dist/vue3/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  985. package/dist/vue3/types/components/emoji_picker/modules/emoji_selector.vue.d.ts.map +1 -1
  986. package/dist/vue3/types/components/emoji_picker/modules/emoji_skin_selector.vue.d.ts.map +1 -1
  987. package/dist/vue3/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  988. package/dist/vue3/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  989. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts +7 -11
  990. package/dist/vue3/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  991. package/dist/vue3/types/components/hovercard/hovercard.vue.d.ts +686 -11
  992. package/dist/vue3/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  993. package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  994. package/dist/vue3/types/components/input/input.vue.d.ts +8 -8
  995. package/dist/vue3/types/components/input_group/input_group.vue.d.ts +2 -2
  996. package/dist/vue3/types/components/item_layout/item_layout.vue.d.ts +1 -1
  997. package/dist/vue3/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +7 -210
  998. package/dist/vue3/types/components/lazy_show/lazy_show.vue.d.ts +1 -1
  999. package/dist/vue3/types/components/link/link_constants.d.ts.map +1 -1
  1000. package/dist/vue3/types/components/list_item/list_item.vue.d.ts +3 -3
  1001. package/dist/vue3/types/components/list_item_group/list_item_group.vue.d.ts +6 -6
  1002. package/dist/vue3/types/components/modal/modal.vue.d.ts +16 -16
  1003. package/dist/vue3/types/components/modal/modal.vue.d.ts.map +1 -1
  1004. package/dist/vue3/types/components/notice/notice.vue.d.ts +1 -1
  1005. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts +1 -30
  1006. package/dist/vue3/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  1007. package/dist/vue3/types/components/popover/popover.vue.d.ts +24 -24
  1008. package/dist/vue3/types/components/popover/popover.vue.d.ts.map +1 -1
  1009. package/dist/vue3/types/components/popover/popover_header_footer.vue.d.ts +3 -3
  1010. package/dist/vue3/types/components/popover/tippy_utils.d.ts +1 -1
  1011. package/dist/vue3/types/components/radio/radio.vue.d.ts +6 -6
  1012. package/dist/vue3/types/components/radio_group/radio_group.vue.d.ts +2 -2
  1013. package/dist/vue3/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +22 -22
  1014. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +22 -22
  1015. package/dist/vue3/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +22 -22
  1016. package/dist/vue3/types/components/rich_text_editor/extensions/slash_command/SlashCommandComponent.vue.d.ts +22 -22
  1017. package/dist/vue3/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts +1 -1
  1018. package/dist/vue3/types/components/rich_text_editor/extensions/slash_command/slash_command.d.ts.map +1 -1
  1019. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +6 -6
  1020. package/dist/vue3/types/components/root_layout/root_layout.vue.d.ts +15 -15
  1021. package/dist/vue3/types/components/scroller/modules/core_scroller.vue.d.ts +26 -16
  1022. package/dist/vue3/types/components/scroller/modules/core_scroller.vue.d.ts.map +1 -1
  1023. package/dist/vue3/types/components/scroller/modules/scroller_item.vue.d.ts +1 -1
  1024. package/dist/vue3/types/components/scroller/scroller.vue.d.ts +245 -12
  1025. package/dist/vue3/types/components/scroller/scroller.vue.d.ts.map +1 -1
  1026. package/dist/vue3/types/components/select_menu/select_menu.vue.d.ts +13 -13
  1027. package/dist/vue3/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  1028. package/dist/vue3/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  1029. package/dist/vue3/types/components/skeleton/skeleton-shape.vue.d.ts +4 -4
  1030. package/dist/vue3/types/components/skeleton/skeleton-text.vue.d.ts +1 -1
  1031. package/dist/vue3/types/components/skeleton/skeleton.vue.d.ts +1 -1
  1032. package/dist/vue3/types/components/skeleton/skeleton_constants.d.ts.map +1 -1
  1033. package/dist/vue3/types/components/split_button/split_button-alpha.vue.d.ts +3 -3
  1034. package/dist/vue3/types/components/split_button/split_button.vue.d.ts +3 -3
  1035. package/dist/vue3/types/components/tab/tab.vue.d.ts +3 -3
  1036. package/dist/vue3/types/components/tab/tab_group.vue.d.ts +3 -3
  1037. package/dist/vue3/types/components/tab/tab_panel.vue.d.ts +3 -3
  1038. package/dist/vue3/types/components/tab/tab_panel.vue.d.ts.map +1 -1
  1039. package/dist/vue3/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +4 -1
  1040. package/dist/vue3/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  1041. package/dist/vue3/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts +1 -30
  1042. package/dist/vue3/types/components/toast/layouts/toast_layout_default.vue.d.ts +4 -1
  1043. package/dist/vue3/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  1044. package/dist/vue3/types/components/toast/toast.vue.d.ts +10 -4
  1045. package/dist/vue3/types/components/toast/toast_constants.d.ts.map +1 -1
  1046. package/dist/vue3/types/components/toggle/toggle.vue.d.ts +7 -7
  1047. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +10 -10
  1048. package/dist/vue3/types/components/tooltip/tooltip_constants.d.ts.map +1 -1
  1049. package/dist/vue3/types/components/validation_messages/validation_messages.vue.d.ts +0 -1
  1050. package/dist/vue3/types/components/validation_messages/validation_messages.vue.d.ts.map +1 -1
  1051. package/dist/vue3/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +7 -7
  1052. package/dist/vue3/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +7 -7
  1053. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +9 -9
  1054. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +1 -30
  1055. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  1056. package/dist/vue3/types/recipes/cards/ivr_node/ivr_node_constants.d.ts.map +1 -1
  1057. package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +9 -9
  1058. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +9 -241
  1059. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  1060. package/dist/vue3/types/recipes/conversation_view/editor/editor_constants.d.ts.map +1 -1
  1061. package/dist/vue3/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  1062. package/dist/vue3/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +7 -36
  1063. package/dist/vue3/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  1064. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  1065. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  1066. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row_constants.d.ts.map +1 -1
  1067. package/dist/vue3/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +22 -22
  1068. package/dist/vue3/types/recipes/conversation_view/message_input/last_active_nodes.d.ts.map +1 -1
  1069. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +7 -7
  1070. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +1 -1
  1071. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -30
  1072. package/package.json +3 -3
  1073. package/dist/vue2/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +0 -47
  1074. package/dist/vue2/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +0 -1
  1075. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +0 -45
  1076. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts.map +0 -1
  1077. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +0 -47
  1078. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts.map +0 -1
  1079. package/dist/vue2/types/components/rich_text_editor/extensions/slash_command/SlashCommandComponent.vue.d.ts +0 -47
  1080. package/dist/vue2/types/components/rich_text_editor/extensions/slash_command/SlashCommandComponent.vue.d.ts.map +0 -1
  1081. package/dist/vue2/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +0 -52
  1082. package/dist/vue2/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../common/mixins/keyboard-list-navigation.cjs"),o=require("./dropdown-constants.cjs"),l=require("../../common/utils/index.cjs"),n=require("../../common/constants/index.cjs"),d=require("../../_plugin-vue2_normalizer-e_CkxkSV.cjs"),h=require("../popover/popover.cjs"),s=require("../list-item/list-item-constants.cjs"),p=require("../popover/popover-constants.cjs"),u={name:"DtDropdown",components:{DtPopover:h.default},mixins:[a.default({indexKey:"highlightIndex",idKey:"highlightId",listElementKey:"getListElement",listItemRole:"menuitem",afterHighlightMethod:"afterHighlight",beginningOfListMethod:"beginningOfListMethod",endOfListMethod:"endOfListMethod",activeItemKey:"activeItemEl",focusOnKeyboardNavigation:!0})],props:{open:{type:Boolean,default:null},openOnContext:{type:Boolean,default:!1},padding:{type:String,default:"small",validator:e=>Object.keys(o.DROPDOWN_PADDING_CLASSES).some(t=>t===e)},modal:{type:Boolean,default:!0},contentWidth:{type:String,default:null},maxHeight:{type:String,default:""},maxWidth:{type:String,default:""},listId:{type:String,default(){return l.getUniqueString()}},navigationType:{type:String,default:s.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS,validator:e=>Object.values(s.LIST_ITEM_NAVIGATION_TYPES).includes(e)},fallbackPlacements:{type:Array,default:()=>["auto"]},placement:{type:String,default:"bottom"},onBeginningOfList:{type:Function,default:null},onEndOfList:{type:Function,default:null},listClass:{type:[String,Array,Object],default:""},appendTo:{type:[HTMLElement,String],default:"body",validator:e=>p.POPOVER_APPEND_TO_VALUES.includes(e)||e instanceof HTMLElement},tether:{type:Boolean,default:!0},transition:{type:String,default:"fade"}},emits:["highlight","opened","update:open"],data(){return{LIST_ITEM_NAVIGATION_TYPES:s.LIST_ITEM_NAVIGATION_TYPES,DROPDOWN_PADDING_CLASSES:o.DROPDOWN_PADDING_CLASSES,EVENT_KEYNAMES:n.EVENT_KEYNAMES,openedWithKeyboard:!1,isOpen:null}},computed:{dropdownListeners(){return{...this.$listeners,opened:e=>{this.updateInitialHighlightIndex(e)},keydown:e=>{switch(e.code){case n.EVENT_KEYNAMES.up:case n.EVENT_KEYNAMES.arrowup:this.onUpKeyPress(e),e.stopPropagation(),e.preventDefault();break;case n.EVENT_KEYNAMES.down:case n.EVENT_KEYNAMES.arrowdown:this.onDownKeyPress(e),e.stopPropagation(),e.preventDefault();break;case n.EVENT_KEYNAMES.space:case n.EVENT_KEYNAMES.spacebar:this.onSpaceKey();break;case n.EVENT_KEYNAMES.enter:this.onEnterKey();break;case n.EVENT_KEYNAMES.home:this.onHomeKeyPress(e),e.stopPropagation(),e.preventDefault();break;case n.EVENT_KEYNAMES.end:this.onEndKeyPress(e),e.stopPropagation(),e.preventDefault();break;default:this.onKeyPress(e);break}this.$emit("keydown",e)}}},beginningOfListMethod(){return this.onBeginningOfList||this.jumpToEnd},endOfListMethod(){return this.onEndOfList||this.jumpToBeginning},activeItemEl(){return this.getListElement().querySelector("#"+this.highlightId)},isArrowKeyNav(){return this.navigationType===this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS},listClasses(){return["d-dropdown-list",o.DROPDOWN_PADDING_CLASSES[this.padding],this.listClass,{"d-context-menu-list":this.openOnContext}]},shouldOpenWithArrowKeys(){return!this.openOnContext}},methods:{onMouseHighlight(e){const t=e.target.closest("li");t&&t.role&&this.highlightId!==t.id&&(this.setHighlightId(t.id),t.focus())},getListElement(){return this.$refs.listWrapper},clearHighlightIndex(){this.setHighlightIndex(-1)},afterHighlight(){this.highlightIndex!==this._itemsLength()-1&&this.$emit("highlight",this.highlightIndex)},updateInitialHighlightIndex(e){this.isOpen=e,e?(this.openedWithKeyboard&&this.isArrowKeyNav&&this.setHighlightIndex(0),this.$emit("opened",!0)):(this.clearHighlightIndex(),this.openedWithKeyboard=!1,this.$emit("opened",!1))},onSpaceKey(){this.open||(this.openedWithKeyboard=!0)},onEnterKey(){this.open||(this.openedWithKeyboard=!0)},onUpKeyPress(){if(!this.isOpen){this.openedWithKeyboard=!0;return}if(this.isArrowKeyNav)return this.onUpKey()},onDownKeyPress(){if(!this.isOpen){this.openedWithKeyboard=!0;return}if(this.isArrowKeyNav)return this.onDownKey()},onHomeKeyPress(){if(!(!this.isOpen||!this.isArrowKeyNav))return this.onHomeKey()},onEndKeyPress(){if(!(!this.isOpen||!this.isArrowKeyNav))return this.onEndKey()},onKeyPress(e){if(!(!this.isOpen||!this.isArrowKeyNav||!this.isValidLetter(e.key)))return e.stopPropagation(),e.preventDefault(),this.onNavigationKey(e.key)}}};var g=function(){var t=this,r=t._self._c;return r("dt-popover",t._g({ref:"popover",attrs:{"content-width":t.contentWidth,open:t.open,placement:t.placement,"initial-focus-element":t.openedWithKeyboard?"first":"dialog","fallback-placements":t.fallbackPlacements,padding:"none",role:"menu","append-to":t.appendTo,modal:t.modal,"max-height":t.maxHeight,"max-width":t.maxWidth,"open-with-arrow-keys":t.shouldOpenWithArrowKeys,"open-on-context":t.openOnContext,tether:t.tether,transition:t.transition},scopedSlots:t._u([{key:"anchor",fn:function({attrs:i}){return[t._t("anchor",null,null,i)]}},{key:"content",fn:function({close:i}){return[r("ul",{ref:"listWrapper",class:t.listClasses,attrs:{id:t.listId,"data-qa":"dt-dropdown-list-wrapper"},on:{mouseleave:t.clearHighlightIndex,"!mousemove":function(_){return t.onMouseHighlight.apply(null,arguments)}}},[t._t("list",null,{close:i})],2)]}},{key:"footerContent",fn:function({close:i}){return[t._t("footer",null,{close:i})]}}],null,!0)},t.dropdownListeners))},c=[],f=d.n(u,g,c);const E=f.exports;exports.default=E;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../common/mixins/keyboard-list-navigation.cjs"),o=require("./dropdown-constants.cjs"),l=require("../../common/utils/index.cjs"),n=require("../../common/constants/index.cjs"),d=require("../../_plugin-vue2_normalizer-e_CkxkSV.cjs"),s=require("../list-item/list-item-constants.cjs"),h=require("../popover/popover.cjs"),p=require("../popover/popover-constants.cjs"),u={name:"DtDropdown",components:{DtPopover:h.default},mixins:[a.default({indexKey:"highlightIndex",idKey:"highlightId",listElementKey:"getListElement",listItemRole:"menuitem",afterHighlightMethod:"afterHighlight",beginningOfListMethod:"beginningOfListMethod",endOfListMethod:"endOfListMethod",activeItemKey:"activeItemEl",focusOnKeyboardNavigation:!0})],props:{open:{type:Boolean,default:null},openOnContext:{type:Boolean,default:!1},padding:{type:String,default:"small",validator:e=>Object.keys(o.DROPDOWN_PADDING_CLASSES).some(t=>t===e)},modal:{type:Boolean,default:!0},contentWidth:{type:String,default:null},maxHeight:{type:String,default:""},maxWidth:{type:String,default:""},listId:{type:String,default(){return l.getUniqueString()}},navigationType:{type:String,default:s.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS,validator:e=>Object.values(s.LIST_ITEM_NAVIGATION_TYPES).includes(e)},fallbackPlacements:{type:Array,default:()=>["auto"]},placement:{type:String,default:"bottom"},onBeginningOfList:{type:Function,default:null},onEndOfList:{type:Function,default:null},listClass:{type:[String,Array,Object],default:""},appendTo:{type:[HTMLElement,String],default:"body",validator:e=>p.POPOVER_APPEND_TO_VALUES.includes(e)||e instanceof HTMLElement},tether:{type:Boolean,default:!0},transition:{type:String,default:"fade"}},emits:["highlight","opened","update:open"],data(){return{LIST_ITEM_NAVIGATION_TYPES:s.LIST_ITEM_NAVIGATION_TYPES,DROPDOWN_PADDING_CLASSES:o.DROPDOWN_PADDING_CLASSES,EVENT_KEYNAMES:n.EVENT_KEYNAMES,openedWithKeyboard:!1,isOpen:null}},computed:{dropdownListeners(){return{...this.$listeners,opened:e=>{this.updateInitialHighlightIndex(e)},keydown:e=>{switch(e.code){case n.EVENT_KEYNAMES.up:case n.EVENT_KEYNAMES.arrowup:this.onUpKeyPress(e),e.stopPropagation(),e.preventDefault();break;case n.EVENT_KEYNAMES.down:case n.EVENT_KEYNAMES.arrowdown:this.onDownKeyPress(e),e.stopPropagation(),e.preventDefault();break;case n.EVENT_KEYNAMES.space:case n.EVENT_KEYNAMES.spacebar:this.onSpaceKey();break;case n.EVENT_KEYNAMES.enter:this.onEnterKey();break;case n.EVENT_KEYNAMES.home:this.onHomeKeyPress(e),e.stopPropagation(),e.preventDefault();break;case n.EVENT_KEYNAMES.end:this.onEndKeyPress(e),e.stopPropagation(),e.preventDefault();break;default:this.onKeyPress(e);break}this.$emit("keydown",e)}}},beginningOfListMethod(){return this.onBeginningOfList||this.jumpToEnd},endOfListMethod(){return this.onEndOfList||this.jumpToBeginning},activeItemEl(){return this.getListElement().querySelector("#"+this.highlightId)},isArrowKeyNav(){return this.navigationType===this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS},listClasses(){return["d-dropdown-list",o.DROPDOWN_PADDING_CLASSES[this.padding],this.listClass,{"d-context-menu-list":this.openOnContext}]},shouldOpenWithArrowKeys(){return!this.openOnContext}},methods:{onMouseHighlight(e){const t=e.target.closest("li");t&&t.role&&this.highlightId!==t.id&&(this.setHighlightId(t.id),t.focus())},getListElement(){return this.$refs.listWrapper},clearHighlightIndex(){this.setHighlightIndex(-1)},afterHighlight(){this.highlightIndex!==this._itemsLength()-1&&this.$emit("highlight",this.highlightIndex)},updateInitialHighlightIndex(e){this.isOpen=e,e?(this.openedWithKeyboard&&this.isArrowKeyNav&&this.setHighlightIndex(0),this.$emit("opened",!0)):(this.clearHighlightIndex(),this.openedWithKeyboard=!1,this.$emit("opened",!1))},onSpaceKey(){this.open||(this.openedWithKeyboard=!0)},onEnterKey(){this.open||(this.openedWithKeyboard=!0)},onUpKeyPress(){if(!this.isOpen){this.openedWithKeyboard=!0;return}if(this.isArrowKeyNav)return this.onUpKey()},onDownKeyPress(){if(!this.isOpen){this.openedWithKeyboard=!0;return}if(this.isArrowKeyNav)return this.onDownKey()},onHomeKeyPress(){if(!(!this.isOpen||!this.isArrowKeyNav))return this.onHomeKey()},onEndKeyPress(){if(!(!this.isOpen||!this.isArrowKeyNav))return this.onEndKey()},onKeyPress(e){if(!(!this.isOpen||!this.isArrowKeyNav||!this.isValidLetter(e.key)))return e.stopPropagation(),e.preventDefault(),this.onNavigationKey(e.key)}}};var g=function(){var t=this,r=t._self._c;return r("dt-popover",t._g({ref:"popover",attrs:{"content-width":t.contentWidth,open:t.open,placement:t.placement,"initial-focus-element":t.openedWithKeyboard?"first":"dialog","fallback-placements":t.fallbackPlacements,padding:"none",role:"menu","append-to":t.appendTo,modal:t.modal,"max-height":t.maxHeight,"max-width":t.maxWidth,"open-with-arrow-keys":t.shouldOpenWithArrowKeys,"open-on-context":t.openOnContext,tether:t.tether,transition:t.transition},scopedSlots:t._u([{key:"anchor",fn:function({attrs:i}){return[t._t("anchor",null,null,i)]}},{key:"content",fn:function({close:i}){return[r("ul",{ref:"listWrapper",class:t.listClasses,attrs:{id:t.listId,"data-qa":"dt-dropdown-list-wrapper"},on:{mouseleave:t.clearHighlightIndex,"!mousemove":function(_){return t.onMouseHighlight.apply(null,arguments)}}},[t._t("list",null,{close:i})],2)]}},{key:"footerContent",fn:function({close:i}){return[t._t("footer",null,{close:i})]}}],null,!0)},t.dropdownListeners))},c=[],f=d.n(u,g,c);const E=f.exports;exports.default=E;
2
2
  //# sourceMappingURL=dropdown.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.cjs","sources":["../../../components/dropdown/dropdown.vue"],"sourcesContent":["<!-- eslint-disable max-lines -->\n<template>\n <dt-popover\n ref=\"popover\"\n :content-width=\"contentWidth\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"openedWithKeyboard ? 'first' : 'dialog'\"\n :fallback-placements=\"fallbackPlacements\"\n padding=\"none\"\n role=\"menu\"\n :append-to=\"appendTo\"\n :modal=\"modal\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :open-with-arrow-keys=\"shouldOpenWithArrowKeys\"\n :open-on-context=\"openOnContext\"\n :tether=\"tether\"\n :transition=\"transition\"\n v-on=\"dropdownListeners\"\n >\n <template #anchor=\"{ attrs }\">\n <!-- @slot Anchor element that activates the dropdown -->\n <slot\n ref=\"anchor\"\n name=\"anchor\"\n v-bind=\"attrs\"\n />\n </template>\n <template #content=\"{ close }\">\n <!-- eslint-disable-next-line max-len -->\n <!-- eslint-disable-next-line vuejs-accessibility/mouse-events-have-key-events, vuejs-accessibility/no-static-element-interactions -->\n <ul\n :id=\"listId\"\n ref=\"listWrapper\"\n :class=\"listClasses\"\n data-qa=\"dt-dropdown-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <!-- @slot Slot for the list component -->\n <slot\n name=\"list\"\n :close=\"close\"\n />\n </ul>\n </template>\n <template #footerContent=\"{ close }\">\n <!-- @slot Slot for the footer content -->\n <slot\n name=\"footer\"\n :close=\"close\"\n />\n </template>\n </dt-popover>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES } from '@/components/popover';\nimport { LIST_ITEM_NAVIGATION_TYPES } from '@/components/list_item';\nimport { DROPDOWN_PADDING_CLASSES } from './dropdown_constants';\nimport { getUniqueString } from '@/common/utils';\nimport { EVENT_KEYNAMES } from '@/common/constants';\n\nexport default {\n name: 'DtDropdown',\n\n components: {\n DtPopover,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n listItemRole: 'menuitem',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n focusOnKeyboardNavigation: true,\n }),\n ],\n\n props: {\n /**\n * Controls whether the dropdown is shown. Leaving this null will have the dropdown trigger on click by default.\n * If you set this value, the default trigger behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Opens the dropdown on right click (context menu). If you set this value to `true`,\n * the default trigger behavior will be disabled.\n */\n openOnContext: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Vertical padding size around the list element.\n * @values none, small, large\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Determines modal state, dropdown has a modal overlay preventing interaction with elements\n * below it, but it is invisible.\n */\n modal: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n * @values null, anchor\n */\n contentWidth: {\n type: String,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * The type of navigation that this component should support.\n * - \"arrow-keys\" for items that are navigated with UP/DOWN keys.\n * - \"tab\" for items that are navigated using the TAB key.\n * - \"none\" for static items that are not interactive.\n * @values arrow-keys, tab, none\n */\n navigationType: {\n type: String,\n default: LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS,\n validator: (t) => Object.values(LIST_ITEM_NAVIGATION_TYPES).includes(t),\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n */\n placement: {\n type: String,\n default: 'bottom',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If set to false the dialog will display over top of the anchor when there is insufficient space.\n * If set to true it will never move from its position relative to the anchor and will clip instead.\n * <a\n * class=\"d-link\"\n * href=\"https://popper.js.org/docs/v2/modifiers/prevent-overflow/#tether\"\n * target=\"_blank\"\n * >\n * Popper.js docs\n * </a>\n * @values true, false\n */\n tether: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when dropdown is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n ],\n\n data () {\n return {\n LIST_ITEM_NAVIGATION_TYPES,\n DROPDOWN_PADDING_CLASSES,\n EVENT_KEYNAMES,\n openedWithKeyboard: false,\n isOpen: null,\n };\n },\n\n computed: {\n dropdownListeners () {\n return {\n ...this.$listeners,\n\n opened: isPopoverOpen => {\n this.updateInitialHighlightIndex(isPopoverOpen);\n },\n\n keydown: event => {\n const eventCode = event.code;\n\n switch (eventCode) {\n case EVENT_KEYNAMES.up:\n case EVENT_KEYNAMES.arrowup:\n this.onUpKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.down:\n case EVENT_KEYNAMES.arrowdown:\n this.onDownKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.space:\n case EVENT_KEYNAMES.spacebar:\n this.onSpaceKey();\n break;\n case EVENT_KEYNAMES.enter:\n this.onEnterKey();\n break;\n case EVENT_KEYNAMES.home:\n this.onHomeKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.end:\n this.onEndKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n this.onKeyPress(event);\n break;\n }\n\n this.$emit('keydown', event);\n },\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemEl () {\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n\n isArrowKeyNav () {\n return this.navigationType === this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS;\n },\n\n listClasses () {\n return [\n 'd-dropdown-list',\n DROPDOWN_PADDING_CLASSES[this.padding],\n this.listClass,\n { 'd-context-menu-list': this.openOnContext },\n ];\n },\n\n shouldOpenWithArrowKeys () {\n return !this.openOnContext;\n },\n },\n\n methods: {\n onMouseHighlight (e) {\n const liElement = e.target.closest('li');\n\n if (liElement && liElement.role && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n liElement.focus();\n }\n },\n\n getListElement () {\n return this.$refs.listWrapper;\n },\n\n clearHighlightIndex () {\n this.setHighlightIndex(-1);\n },\n\n afterHighlight () {\n if (this.highlightIndex === this._itemsLength() - 1) {\n return;\n }\n\n this.$emit('highlight', this.highlightIndex);\n },\n\n updateInitialHighlightIndex (isPopoverOpen) {\n this.isOpen = isPopoverOpen;\n\n if (isPopoverOpen) {\n if (this.openedWithKeyboard && this.isArrowKeyNav) {\n this.setHighlightIndex(0);\n }\n this.$emit('opened', true);\n } else {\n this.clearHighlightIndex();\n this.openedWithKeyboard = false;\n this.$emit('opened', false);\n }\n },\n\n onSpaceKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onEnterKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onUpKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onUpKey();\n }\n },\n\n onDownKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onDownKey();\n }\n },\n\n onHomeKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onHomeKey();\n },\n\n onEndKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onEndKey();\n },\n\n onKeyPress (e) {\n if (!this.isOpen || !this.isArrowKeyNav || !this.isValidLetter(e.key)) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n return this.onNavigationKey(e.key);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtPopover","KeyboardNavigation","padding","DROPDOWN_PADDING_CLASSES","item","getUniqueString","LIST_ITEM_NAVIGATION_TYPES","t","appendTo","POPOVER_APPEND_TO_VALUES","EVENT_KEYNAMES","isPopoverOpen","event","liElement"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.cjs","sources":["../../../components/dropdown/dropdown.vue"],"sourcesContent":["<!-- eslint-disable max-lines -->\n<template>\n <dt-popover\n ref=\"popover\"\n :content-width=\"contentWidth\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"openedWithKeyboard ? 'first' : 'dialog'\"\n :fallback-placements=\"fallbackPlacements\"\n padding=\"none\"\n role=\"menu\"\n :append-to=\"appendTo\"\n :modal=\"modal\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :open-with-arrow-keys=\"shouldOpenWithArrowKeys\"\n :open-on-context=\"openOnContext\"\n :tether=\"tether\"\n :transition=\"transition\"\n v-on=\"dropdownListeners\"\n >\n <template #anchor=\"{ attrs }\">\n <!-- @slot Anchor element that activates the dropdown -->\n <slot\n ref=\"anchor\"\n name=\"anchor\"\n v-bind=\"attrs\"\n />\n </template>\n <template #content=\"{ close }\">\n <!-- eslint-disable-next-line max-len -->\n <!-- eslint-disable-next-line vuejs-accessibility/mouse-events-have-key-events, vuejs-accessibility/no-static-element-interactions -->\n <ul\n :id=\"listId\"\n ref=\"listWrapper\"\n :class=\"listClasses\"\n data-qa=\"dt-dropdown-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <!-- @slot Slot for the list component -->\n <slot\n name=\"list\"\n :close=\"close\"\n />\n </ul>\n </template>\n <template #footerContent=\"{ close }\">\n <!-- @slot Slot for the footer content -->\n <slot\n name=\"footer\"\n :close=\"close\"\n />\n </template>\n </dt-popover>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES } from '@/components/popover';\nimport { LIST_ITEM_NAVIGATION_TYPES } from '@/components/list_item';\nimport { DROPDOWN_PADDING_CLASSES } from './dropdown_constants';\nimport { getUniqueString } from '@/common/utils';\nimport { EVENT_KEYNAMES } from '@/common/constants';\n\nexport default {\n name: 'DtDropdown',\n\n components: {\n DtPopover,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n listItemRole: 'menuitem',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n focusOnKeyboardNavigation: true,\n }),\n ],\n\n props: {\n /**\n * Controls whether the dropdown is shown. Leaving this null will have the dropdown trigger on click by default.\n * If you set this value, the default trigger behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Opens the dropdown on right click (context menu). If you set this value to `true`,\n * the default trigger behavior will be disabled.\n */\n openOnContext: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Vertical padding size around the list element.\n * @values none, small, large\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Determines modal state, dropdown has a modal overlay preventing interaction with elements\n * below it, but it is invisible.\n */\n modal: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n * @values null, anchor\n */\n contentWidth: {\n type: String,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * The type of navigation that this component should support.\n * - \"arrow-keys\" for items that are navigated with UP/DOWN keys.\n * - \"tab\" for items that are navigated using the TAB key.\n * - \"none\" for static items that are not interactive.\n * @values arrow-keys, tab, none\n */\n navigationType: {\n type: String,\n default: LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS,\n validator: (t) => Object.values(LIST_ITEM_NAVIGATION_TYPES).includes(t),\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n */\n placement: {\n type: String,\n default: 'bottom',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If set to false the dialog will display over top of the anchor when there is insufficient space.\n * If set to true it will never move from its position relative to the anchor and will clip instead.\n * <a\n * class=\"d-link\"\n * href=\"https://popper.js.org/docs/v2/modifiers/prevent-overflow/#tether\"\n * target=\"_blank\"\n * >\n * Popper.js docs\n * </a>\n * @values true, false\n */\n tether: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when dropdown is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n ],\n\n data () {\n return {\n LIST_ITEM_NAVIGATION_TYPES,\n DROPDOWN_PADDING_CLASSES,\n EVENT_KEYNAMES,\n openedWithKeyboard: false,\n isOpen: null,\n };\n },\n\n computed: {\n dropdownListeners () {\n return {\n ...this.$listeners,\n\n opened: isPopoverOpen => {\n this.updateInitialHighlightIndex(isPopoverOpen);\n },\n\n keydown: event => {\n const eventCode = event.code;\n\n switch (eventCode) {\n case EVENT_KEYNAMES.up:\n case EVENT_KEYNAMES.arrowup:\n this.onUpKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.down:\n case EVENT_KEYNAMES.arrowdown:\n this.onDownKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.space:\n case EVENT_KEYNAMES.spacebar:\n this.onSpaceKey();\n break;\n case EVENT_KEYNAMES.enter:\n this.onEnterKey();\n break;\n case EVENT_KEYNAMES.home:\n this.onHomeKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.end:\n this.onEndKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n this.onKeyPress(event);\n break;\n }\n\n this.$emit('keydown', event);\n },\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemEl () {\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n\n isArrowKeyNav () {\n return this.navigationType === this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS;\n },\n\n listClasses () {\n return [\n 'd-dropdown-list',\n DROPDOWN_PADDING_CLASSES[this.padding],\n this.listClass,\n { 'd-context-menu-list': this.openOnContext },\n ];\n },\n\n shouldOpenWithArrowKeys () {\n return !this.openOnContext;\n },\n },\n\n methods: {\n onMouseHighlight (e) {\n const liElement = e.target.closest('li');\n\n if (liElement && liElement.role && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n liElement.focus();\n }\n },\n\n getListElement () {\n return this.$refs.listWrapper;\n },\n\n clearHighlightIndex () {\n this.setHighlightIndex(-1);\n },\n\n afterHighlight () {\n if (this.highlightIndex === this._itemsLength() - 1) {\n return;\n }\n\n this.$emit('highlight', this.highlightIndex);\n },\n\n updateInitialHighlightIndex (isPopoverOpen) {\n this.isOpen = isPopoverOpen;\n\n if (isPopoverOpen) {\n if (this.openedWithKeyboard && this.isArrowKeyNav) {\n this.setHighlightIndex(0);\n }\n this.$emit('opened', true);\n } else {\n this.clearHighlightIndex();\n this.openedWithKeyboard = false;\n this.$emit('opened', false);\n }\n },\n\n onSpaceKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onEnterKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onUpKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onUpKey();\n }\n },\n\n onDownKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onDownKey();\n }\n },\n\n onHomeKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onHomeKey();\n },\n\n onEndKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onEndKey();\n },\n\n onKeyPress (e) {\n if (!this.isOpen || !this.isArrowKeyNav || !this.isValidLetter(e.key)) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n return this.onNavigationKey(e.key);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtPopover","KeyboardNavigation","padding","DROPDOWN_PADDING_CLASSES","item","getUniqueString","LIST_ITEM_NAVIGATION_TYPES","t","appendTo","POPOVER_APPEND_TO_VALUES","EVENT_KEYNAMES","isPopoverOpen","event","liElement"],"mappings":"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"}
@@ -3,8 +3,8 @@ import { DROPDOWN_PADDING_CLASSES as o } from "./dropdown-constants.js";
3
3
  import { getUniqueString as l } from "../../common/utils/index.js";
4
4
  import { EVENT_KEYNAMES as i } from "../../common/constants/index.js";
5
5
  import { n as h } from "../../_plugin-vue2_normalizer-DSLOjnn3.js";
6
- import d from "../popover/popover.js";
7
6
  import { LIST_ITEM_NAVIGATION_TYPES as r } from "../list-item/list-item-constants.js";
7
+ import d from "../popover/popover.js";
8
8
  import { POPOVER_APPEND_TO_VALUES as p } from "../popover/popover-constants.js";
9
9
  const u = {
10
10
  name: "DtDropdown",
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sources":["../../../components/dropdown/dropdown.vue"],"sourcesContent":["<!-- eslint-disable max-lines -->\n<template>\n <dt-popover\n ref=\"popover\"\n :content-width=\"contentWidth\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"openedWithKeyboard ? 'first' : 'dialog'\"\n :fallback-placements=\"fallbackPlacements\"\n padding=\"none\"\n role=\"menu\"\n :append-to=\"appendTo\"\n :modal=\"modal\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :open-with-arrow-keys=\"shouldOpenWithArrowKeys\"\n :open-on-context=\"openOnContext\"\n :tether=\"tether\"\n :transition=\"transition\"\n v-on=\"dropdownListeners\"\n >\n <template #anchor=\"{ attrs }\">\n <!-- @slot Anchor element that activates the dropdown -->\n <slot\n ref=\"anchor\"\n name=\"anchor\"\n v-bind=\"attrs\"\n />\n </template>\n <template #content=\"{ close }\">\n <!-- eslint-disable-next-line max-len -->\n <!-- eslint-disable-next-line vuejs-accessibility/mouse-events-have-key-events, vuejs-accessibility/no-static-element-interactions -->\n <ul\n :id=\"listId\"\n ref=\"listWrapper\"\n :class=\"listClasses\"\n data-qa=\"dt-dropdown-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <!-- @slot Slot for the list component -->\n <slot\n name=\"list\"\n :close=\"close\"\n />\n </ul>\n </template>\n <template #footerContent=\"{ close }\">\n <!-- @slot Slot for the footer content -->\n <slot\n name=\"footer\"\n :close=\"close\"\n />\n </template>\n </dt-popover>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES } from '@/components/popover';\nimport { LIST_ITEM_NAVIGATION_TYPES } from '@/components/list_item';\nimport { DROPDOWN_PADDING_CLASSES } from './dropdown_constants';\nimport { getUniqueString } from '@/common/utils';\nimport { EVENT_KEYNAMES } from '@/common/constants';\n\nexport default {\n name: 'DtDropdown',\n\n components: {\n DtPopover,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n listItemRole: 'menuitem',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n focusOnKeyboardNavigation: true,\n }),\n ],\n\n props: {\n /**\n * Controls whether the dropdown is shown. Leaving this null will have the dropdown trigger on click by default.\n * If you set this value, the default trigger behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Opens the dropdown on right click (context menu). If you set this value to `true`,\n * the default trigger behavior will be disabled.\n */\n openOnContext: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Vertical padding size around the list element.\n * @values none, small, large\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Determines modal state, dropdown has a modal overlay preventing interaction with elements\n * below it, but it is invisible.\n */\n modal: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n * @values null, anchor\n */\n contentWidth: {\n type: String,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * The type of navigation that this component should support.\n * - \"arrow-keys\" for items that are navigated with UP/DOWN keys.\n * - \"tab\" for items that are navigated using the TAB key.\n * - \"none\" for static items that are not interactive.\n * @values arrow-keys, tab, none\n */\n navigationType: {\n type: String,\n default: LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS,\n validator: (t) => Object.values(LIST_ITEM_NAVIGATION_TYPES).includes(t),\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n */\n placement: {\n type: String,\n default: 'bottom',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If set to false the dialog will display over top of the anchor when there is insufficient space.\n * If set to true it will never move from its position relative to the anchor and will clip instead.\n * <a\n * class=\"d-link\"\n * href=\"https://popper.js.org/docs/v2/modifiers/prevent-overflow/#tether\"\n * target=\"_blank\"\n * >\n * Popper.js docs\n * </a>\n * @values true, false\n */\n tether: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when dropdown is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n ],\n\n data () {\n return {\n LIST_ITEM_NAVIGATION_TYPES,\n DROPDOWN_PADDING_CLASSES,\n EVENT_KEYNAMES,\n openedWithKeyboard: false,\n isOpen: null,\n };\n },\n\n computed: {\n dropdownListeners () {\n return {\n ...this.$listeners,\n\n opened: isPopoverOpen => {\n this.updateInitialHighlightIndex(isPopoverOpen);\n },\n\n keydown: event => {\n const eventCode = event.code;\n\n switch (eventCode) {\n case EVENT_KEYNAMES.up:\n case EVENT_KEYNAMES.arrowup:\n this.onUpKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.down:\n case EVENT_KEYNAMES.arrowdown:\n this.onDownKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.space:\n case EVENT_KEYNAMES.spacebar:\n this.onSpaceKey();\n break;\n case EVENT_KEYNAMES.enter:\n this.onEnterKey();\n break;\n case EVENT_KEYNAMES.home:\n this.onHomeKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.end:\n this.onEndKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n this.onKeyPress(event);\n break;\n }\n\n this.$emit('keydown', event);\n },\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemEl () {\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n\n isArrowKeyNav () {\n return this.navigationType === this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS;\n },\n\n listClasses () {\n return [\n 'd-dropdown-list',\n DROPDOWN_PADDING_CLASSES[this.padding],\n this.listClass,\n { 'd-context-menu-list': this.openOnContext },\n ];\n },\n\n shouldOpenWithArrowKeys () {\n return !this.openOnContext;\n },\n },\n\n methods: {\n onMouseHighlight (e) {\n const liElement = e.target.closest('li');\n\n if (liElement && liElement.role && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n liElement.focus();\n }\n },\n\n getListElement () {\n return this.$refs.listWrapper;\n },\n\n clearHighlightIndex () {\n this.setHighlightIndex(-1);\n },\n\n afterHighlight () {\n if (this.highlightIndex === this._itemsLength() - 1) {\n return;\n }\n\n this.$emit('highlight', this.highlightIndex);\n },\n\n updateInitialHighlightIndex (isPopoverOpen) {\n this.isOpen = isPopoverOpen;\n\n if (isPopoverOpen) {\n if (this.openedWithKeyboard && this.isArrowKeyNav) {\n this.setHighlightIndex(0);\n }\n this.$emit('opened', true);\n } else {\n this.clearHighlightIndex();\n this.openedWithKeyboard = false;\n this.$emit('opened', false);\n }\n },\n\n onSpaceKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onEnterKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onUpKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onUpKey();\n }\n },\n\n onDownKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onDownKey();\n }\n },\n\n onHomeKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onHomeKey();\n },\n\n onEndKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onEndKey();\n },\n\n onKeyPress (e) {\n if (!this.isOpen || !this.isArrowKeyNav || !this.isValidLetter(e.key)) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n return this.onNavigationKey(e.key);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtPopover","KeyboardNavigation","padding","DROPDOWN_PADDING_CLASSES","item","getUniqueString","LIST_ITEM_NAVIGATION_TYPES","t","appendTo","POPOVER_APPEND_TO_VALUES","EVENT_KEYNAMES","isPopoverOpen","event","liElement"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","sources":["../../../components/dropdown/dropdown.vue"],"sourcesContent":["<!-- eslint-disable max-lines -->\n<template>\n <dt-popover\n ref=\"popover\"\n :content-width=\"contentWidth\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"openedWithKeyboard ? 'first' : 'dialog'\"\n :fallback-placements=\"fallbackPlacements\"\n padding=\"none\"\n role=\"menu\"\n :append-to=\"appendTo\"\n :modal=\"modal\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :open-with-arrow-keys=\"shouldOpenWithArrowKeys\"\n :open-on-context=\"openOnContext\"\n :tether=\"tether\"\n :transition=\"transition\"\n v-on=\"dropdownListeners\"\n >\n <template #anchor=\"{ attrs }\">\n <!-- @slot Anchor element that activates the dropdown -->\n <slot\n ref=\"anchor\"\n name=\"anchor\"\n v-bind=\"attrs\"\n />\n </template>\n <template #content=\"{ close }\">\n <!-- eslint-disable-next-line max-len -->\n <!-- eslint-disable-next-line vuejs-accessibility/mouse-events-have-key-events, vuejs-accessibility/no-static-element-interactions -->\n <ul\n :id=\"listId\"\n ref=\"listWrapper\"\n :class=\"listClasses\"\n data-qa=\"dt-dropdown-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <!-- @slot Slot for the list component -->\n <slot\n name=\"list\"\n :close=\"close\"\n />\n </ul>\n </template>\n <template #footerContent=\"{ close }\">\n <!-- @slot Slot for the footer content -->\n <slot\n name=\"footer\"\n :close=\"close\"\n />\n </template>\n </dt-popover>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES } from '@/components/popover';\nimport { LIST_ITEM_NAVIGATION_TYPES } from '@/components/list_item';\nimport { DROPDOWN_PADDING_CLASSES } from './dropdown_constants';\nimport { getUniqueString } from '@/common/utils';\nimport { EVENT_KEYNAMES } from '@/common/constants';\n\nexport default {\n name: 'DtDropdown',\n\n components: {\n DtPopover,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n listItemRole: 'menuitem',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n focusOnKeyboardNavigation: true,\n }),\n ],\n\n props: {\n /**\n * Controls whether the dropdown is shown. Leaving this null will have the dropdown trigger on click by default.\n * If you set this value, the default trigger behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Opens the dropdown on right click (context menu). If you set this value to `true`,\n * the default trigger behavior will be disabled.\n */\n openOnContext: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Vertical padding size around the list element.\n * @values none, small, large\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Determines modal state, dropdown has a modal overlay preventing interaction with elements\n * below it, but it is invisible.\n */\n modal: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n * @values null, anchor\n */\n contentWidth: {\n type: String,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * The type of navigation that this component should support.\n * - \"arrow-keys\" for items that are navigated with UP/DOWN keys.\n * - \"tab\" for items that are navigated using the TAB key.\n * - \"none\" for static items that are not interactive.\n * @values arrow-keys, tab, none\n */\n navigationType: {\n type: String,\n default: LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS,\n validator: (t) => Object.values(LIST_ITEM_NAVIGATION_TYPES).includes(t),\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n */\n placement: {\n type: String,\n default: 'bottom',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If set to false the dialog will display over top of the anchor when there is insufficient space.\n * If set to true it will never move from its position relative to the anchor and will clip instead.\n * <a\n * class=\"d-link\"\n * href=\"https://popper.js.org/docs/v2/modifiers/prevent-overflow/#tether\"\n * target=\"_blank\"\n * >\n * Popper.js docs\n * </a>\n * @values true, false\n */\n tether: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when dropdown is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n ],\n\n data () {\n return {\n LIST_ITEM_NAVIGATION_TYPES,\n DROPDOWN_PADDING_CLASSES,\n EVENT_KEYNAMES,\n openedWithKeyboard: false,\n isOpen: null,\n };\n },\n\n computed: {\n dropdownListeners () {\n return {\n ...this.$listeners,\n\n opened: isPopoverOpen => {\n this.updateInitialHighlightIndex(isPopoverOpen);\n },\n\n keydown: event => {\n const eventCode = event.code;\n\n switch (eventCode) {\n case EVENT_KEYNAMES.up:\n case EVENT_KEYNAMES.arrowup:\n this.onUpKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.down:\n case EVENT_KEYNAMES.arrowdown:\n this.onDownKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.space:\n case EVENT_KEYNAMES.spacebar:\n this.onSpaceKey();\n break;\n case EVENT_KEYNAMES.enter:\n this.onEnterKey();\n break;\n case EVENT_KEYNAMES.home:\n this.onHomeKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.end:\n this.onEndKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n this.onKeyPress(event);\n break;\n }\n\n this.$emit('keydown', event);\n },\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemEl () {\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n\n isArrowKeyNav () {\n return this.navigationType === this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS;\n },\n\n listClasses () {\n return [\n 'd-dropdown-list',\n DROPDOWN_PADDING_CLASSES[this.padding],\n this.listClass,\n { 'd-context-menu-list': this.openOnContext },\n ];\n },\n\n shouldOpenWithArrowKeys () {\n return !this.openOnContext;\n },\n },\n\n methods: {\n onMouseHighlight (e) {\n const liElement = e.target.closest('li');\n\n if (liElement && liElement.role && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n liElement.focus();\n }\n },\n\n getListElement () {\n return this.$refs.listWrapper;\n },\n\n clearHighlightIndex () {\n this.setHighlightIndex(-1);\n },\n\n afterHighlight () {\n if (this.highlightIndex === this._itemsLength() - 1) {\n return;\n }\n\n this.$emit('highlight', this.highlightIndex);\n },\n\n updateInitialHighlightIndex (isPopoverOpen) {\n this.isOpen = isPopoverOpen;\n\n if (isPopoverOpen) {\n if (this.openedWithKeyboard && this.isArrowKeyNav) {\n this.setHighlightIndex(0);\n }\n this.$emit('opened', true);\n } else {\n this.clearHighlightIndex();\n this.openedWithKeyboard = false;\n this.$emit('opened', false);\n }\n },\n\n onSpaceKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onEnterKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onUpKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onUpKey();\n }\n },\n\n onDownKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onDownKey();\n }\n },\n\n onHomeKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onHomeKey();\n },\n\n onEndKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onEndKey();\n },\n\n onKeyPress (e) {\n if (!this.isOpen || !this.isArrowKeyNav || !this.isValidLetter(e.key)) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n return this.onNavigationKey(e.key);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtPopover","KeyboardNavigation","padding","DROPDOWN_PADDING_CLASSES","item","getUniqueString","LIST_ITEM_NAVIGATION_TYPES","t","appendTo","POPOVER_APPEND_TO_VALUES","EVENT_KEYNAMES","isPopoverOpen","event","liElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor-constants.cjs","sources":["../../../recipes/conversation_view/editor/editor_constants.js"],"sourcesContent":["export const EDITOR_SUPPORTED_LINK_PROTOCOLS = [\n /^https?:\\/\\//,\n /^http?:\\/\\//,\n /^ftp?:\\/\\//,\n /^ftps?:\\/\\//,\n /^ftps?:\\/\\//,\n /mailto:([^?]*)/,\n];\n\nexport const EDITOR_DEFAULT_LINK_PREFIX = 'https://';\n\nexport default {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n};\n"],"names":["EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","editor_constants"],"mappings":"4GAAY,MAACA,EAAkC,CAC7C,eACA,cACA,aACA,cACA,cACA,gBACF,EAEaC,EAA6B,WAE3BC,EAAA,CACb,gCAAAF,EACA,2BAAAC,CACF"}
1
+ {"version":3,"file":"editor-constants.cjs","sources":["../../../recipes/conversation_view/editor/editor_constants.js"],"sourcesContent":["export const EDITOR_SUPPORTED_LINK_PROTOCOLS = [\n /^https?:\\/\\//,\n /^http?:\\/\\//,\n /^ftp?:\\/\\//,\n /^ftps?:\\/\\//,\n /^ftps?:\\/\\//,\n /mailto:([^?]*)/,\n];\n\nexport const EDITOR_DEFAULT_LINK_PREFIX = 'https://';\n\nexport default {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n};\n"],"names":["EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","editor_constants"],"mappings":"4GAAY,MAACA,EAAkC,CAC7C,eACA,cACA,aACA,cACA,cACA,gBACF,EAEaC,EAA6B,WAE1CC,EAAe,CACb,gCAAAF,EACA,2BAAAC,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor-constants.js","sources":["../../../recipes/conversation_view/editor/editor_constants.js"],"sourcesContent":["export const EDITOR_SUPPORTED_LINK_PROTOCOLS = [\n /^https?:\\/\\//,\n /^http?:\\/\\//,\n /^ftp?:\\/\\//,\n /^ftps?:\\/\\//,\n /^ftps?:\\/\\//,\n /mailto:([^?]*)/,\n];\n\nexport const EDITOR_DEFAULT_LINK_PREFIX = 'https://';\n\nexport default {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n};\n"],"names":["EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","editor_constants"],"mappings":"AAAY,MAACA,IAAkC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,IAA6B,YAE3BC,IAAA;AAAA,EACb,iCAAAF;AAAA,EACA,4BAAAC;AACF;"}
1
+ {"version":3,"file":"editor-constants.js","sources":["../../../recipes/conversation_view/editor/editor_constants.js"],"sourcesContent":["export const EDITOR_SUPPORTED_LINK_PROTOCOLS = [\n /^https?:\\/\\//,\n /^http?:\\/\\//,\n /^ftp?:\\/\\//,\n /^ftps?:\\/\\//,\n /^ftps?:\\/\\//,\n /mailto:([^?]*)/,\n];\n\nexport const EDITOR_DEFAULT_LINK_PREFIX = 'https://';\n\nexport default {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n};\n"],"names":["EDITOR_SUPPORTED_LINK_PROTOCOLS","EDITOR_DEFAULT_LINK_PREFIX","editor_constants"],"mappings":"AAAY,MAACA,IAAkC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,IAA6B,YAE1CC,IAAe;AAAA,EACb,iCAAAF;AAAA,EACA,4BAAAC;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("./editor-constants.cjs"),o=require("@dialpad/dialtone-icons/vue2"),d=require("../../localization/index.cjs"),h=require("../../_plugin-vue2_normalizer-e_CkxkSV.cjs"),p=require("../rich-text-editor/rich-text-editor.cjs"),f=require("../button/button.cjs"),k=require("../popover/popover.cjs"),g=require("../stack/stack.cjs"),B=require("../input/input.cjs"),I=require("../tooltip/tooltip.cjs"),a=require("../rich-text-editor/rich-text-editor-constants.cjs"),_={name:"DtRecipeEditor",components:{DtRichTextEditor:p.default,DtButton:f.default,DtPopover:k.default,DtStack:g.default,DtInput:B.default,DtTooltip:I.default,DtIconQuickReply:o.DtIconQuickReply,DtIconBold:o.DtIconBold,DtIconItalic:o.DtIconItalic,DtIconUnderline:o.DtIconUnderline,DtIconStrikethrough:o.DtIconStrikethrough,DtIconListBullet:o.DtIconListBullet,DtIconListOrdered:o.DtIconListOrdered,DtIconAlignLeft:o.DtIconAlignLeft,DtIconAlignCenter:o.DtIconAlignCenter,DtIconAlignRight:o.DtIconAlignRight,DtIconAlignJustify:o.DtIconAlignJustify,DtIconQuote:o.DtIconQuote,DtIconCodeBlock:o.DtIconCodeBlock,DtIconLink2:o.DtIconLink2,DtIconImage:o.DtIconImage},inheritAttrs:!1,props:{value:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(e){return typeof e=="string"?a.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},placeholder:{type:String,default:""},maxHeight:{type:String,default:"unset"},setLinkPlaceholder:{type:String,default:""},showBoldButton:{type:Boolean,default:!0},showItalicsButton:{type:Boolean,default:!0},showUnderlineButton:{type:Boolean,default:!0},showStrikeButton:{type:Boolean,default:!0},showListItemsButton:{type:Boolean,default:!0},showOrderedListButton:{type:Boolean,default:!0},showAlignLeftButton:{type:Boolean,default:!0},showAlignCenterButton:{type:Boolean,default:!0},showAlignRightButton:{type:Boolean,default:!0},showAlignJustifyButton:{type:Boolean,default:!0},showQuoteButton:{type:Boolean,default:!0},showCodeBlockButton:{type:Boolean,default:!0},showQuickRepliesButton:{type:Boolean,default:!0},showInlineImageButton:{type:Boolean,default:!1},showAddLink:{type:Object,default:()=>({showAddLinkButton:!0})},useDivTags:{type:Boolean,default:!1}},emits:["focus","blur","input","quick-replies-click","inline-image-click","text-input"],data(){return{internalInputValue:this.value,hasFocus:!1,linkOptions:{class:"d-recipe-editor__link"},showLinkInput:!1,linkInput:"",currentButtonRefIndex:0,i18n:new d.DialtoneLocalization}},computed:{inputLength(){return this.internalInputValue.length},htmlOutputFormat(){return a.RICH_TEXT_EDITOR_OUTPUT_FORMATS[2]},showingTextFormatButtons(){return this.showBoldButton||this.showItalicsButton||this.showStrikeButton||this.showUnderlineButton},showingAlignmentButtons(){return this.showAlignLeftButton||this.showAlignCenterButton||this.showAlignRightButton||this.showAlignJustifyButton},showingListButtons(){return this.showListItemsButton||this.showOrderedListButton},orderedRefs(){const e=this.buttonGroups.reduce((function(t,i){return i.buttonGroup.forEach(n=>{t.push(this.getButtonRef(i.key,n.selector))},this),t}).bind(this),[]);return e.push(this.getButtonRef("custom","link")),e},buttonGroups(){const e=this.individualButtons.map(t=>({key:t.selector,buttonGroup:[t]}));return[{key:"new",buttonGroup:this.newButtons},{key:"format",buttonGroup:this.textFormatButtons},{key:"alignment",buttonGroup:this.alignmentButtons},{key:"list",buttonGroup:this.listButtons},...e].filter(t=>t.buttonGroup.length>0)},newButtons(){return[{showBtn:this.showQuickRepliesButton,label:this.i18n.$t("DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL"),selector:"quickReplies",icon:o.DtIconQuickReply,dataQA:"dt-recipe-editor-quick-replies-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL"),onClick:this.onQuickRepliesClick}].filter(e=>e.showBtn)},textFormatButtons(){return[{showBtn:this.showBoldButton,selector:"bold",icon:o.DtIconBold,dataQA:"dt-recipe-editor-bold-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_BOLD_BUTTON_LABEL"),onClick:this.onBoldTextToggle},{showBtn:this.showItalicsButton,selector:"italic",icon:o.DtIconItalic,dataQA:"dt-recipe-editor-italics-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ITALICS_BUTTON_LABEL"),onClick:this.onItalicTextToggle},{showBtn:this.showUnderlineButton,selector:"underline",icon:o.DtIconUnderline,dataQA:"dt-recipe-editor-underline-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL"),onClick:this.onUnderlineTextToggle},{showBtn:this.showStrikeButton,selector:"strike",icon:o.DtIconStrikethrough,dataQA:"dt-recipe-editor-strike-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_STRIKE_BUTTON_LABEL"),onClick:this.onStrikethroughTextToggle}].filter(e=>e.showBtn)},alignmentButtons(){return[{showBtn:this.showAlignLeftButton,selector:{textAlign:"left"},icon:o.DtIconAlignLeft,dataQA:"dt-recipe-editor-align-left-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL"),onClick:()=>this.onTextAlign("left")},{showBtn:this.showAlignCenterButton,selector:{textAlign:"center"},icon:o.DtIconAlignCenter,dataQA:"dt-recipe-editor-align-center-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL"),onClick:()=>this.onTextAlign("center")},{showBtn:this.showAlignRightButton,selector:{textAlign:"right"},icon:o.DtIconAlignRight,dataQA:"dt-recipe-editor-align-right-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL"),onClick:()=>this.onTextAlign("right")},{showBtn:this.showAlignJustifyButton,selector:{textAlign:"justify"},icon:o.DtIconAlignJustify,dataQA:"dt-recipe-editor-align-justify-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL"),onClick:()=>this.onTextAlign("justify")}].filter(e=>e.showBtn)},listButtons(){return[{showBtn:this.showListItemsButton,selector:"bulletList",icon:o.DtIconListBullet,dataQA:"dt-recipe-editor-list-items-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL"),onClick:this.onBulletListToggle},{showBtn:this.showOrderedListButton,selector:"orderedList",icon:o.DtIconListOrdered,dataQA:"dt-recipe-editor-ordered-list-items-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL"),onClick:this.onOrderedListToggle}].filter(e=>e.showBtn)},individualButtons(){return[{showBtn:this.showQuoteButton,selector:"blockquote",icon:o.DtIconQuote,dataQA:"dt-recipe-editor-blockquote-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_QUOTE_BUTTON_LABEL"),onClick:this.onBlockquoteToggle},{showBtn:this.showCodeBlockButton,selector:"codeBlock",icon:o.DtIconCodeBlock,dataQA:"dt-recipe-editor-code-block-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_CODE_BUTTON_LABEL"),onClick:this.onCodeBlockToggle},{showBtn:this.showInlineImageButton,selector:"image",icon:o.DtIconImage,dataQA:"dt-recipe-editor-inline-image-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_IMAGE_BUTTON_LABEL"),onClick:this.onInsertInlineImageClick}].filter(e=>e.showBtn)},linkButton(){return{showBtn:this.showAddLink.showAddLinkButton,selector:"link",icon:o.DtIconLink2,dataQA:"dt-recipe-editor-add-link-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_LINK_BUTTON_LABEL"),onClick:this.openLinkInput}},confirmSetLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON")},cancelSetLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON")},removeLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_REMOVE_LINK_BUTTON")},showAddLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_ADD_LINK_BUTTON")}},watch:{value(e){this.internalInputValue=e}},methods:{onInputFocus(e){e==null||e.stopPropagation()},removeLink(){var e,t,i,n,r;(r=(n=(i=(t=(e=this.$refs.richTextEditor)==null?void 0:e.editor)==null?void 0:t.chain())==null?void 0:i.focus())==null?void 0:n.unsetLink())==null||r.run(),this.closeLinkInput()},setLink(e){var r,s,u;const t=(r=this.$refs.richTextEditor)==null?void 0:r.editor;if(e==null||e.preventDefault(),e==null||e.stopPropagation(),!this.linkInput){this.removeLink();return}c.EDITOR_SUPPORTED_LINK_PROTOCOLS.find(l=>l.test(this.linkInput))||(this.linkInput=`${c.EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`);const n=(u=(s=t==null?void 0:t.view)==null?void 0:s.state)==null?void 0:u.selection;n.anchor===n.head?t.chain().focus().insertContentAt(n.anchor,`<a class="${this.linkOptions.class}" href=${this.linkInput}>${this.linkInput}</a>`).run():t.chain().focus().extendMarkRange("link").setLink({href:this.linkInput,class:this.linkOptions.class}).run(),this.closeLinkInput()},openLinkInput(){this.showLinkInput=!0},updateInput(e){var t,i,n;if(!e)return this.closeLinkInput();this.linkInput=(n=(i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:i.getAttributes("link"))==null?void 0:n.href},closeLinkInput(){var e;this.showLinkInput=!1,this.linkInput="",(e=this.$refs.richTextEditor.editor)==null||e.chain().focus()},onBoldTextToggle(){var e,t;(t=(e=this.$refs.richTextEditor)==null?void 0:e.editor)==null||t.chain().focus().toggleBold().run()},onItalicTextToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleItalic().run()},onUnderlineTextToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleUnderline().run()},onStrikethroughTextToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleStrike().run()},onTextAlign(e){var t,i,n,r;if((i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)!=null&&i.isActive({textAlign:e}))return(n=this.$refs.richTextEditor)==null?void 0:n.editor.chain().focus().unsetTextAlign().run();(r=this.$refs.richTextEditor)==null||r.editor.chain().focus().setTextAlign(e).run()},onBulletListToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleBulletList().run()},onOrderedListToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleOrderedList().run()},onCodeBlockToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleCodeBlock().run()},onQuickRepliesClick(){this.$emit("quick-replies-click")},onInsertInlineImageClick(){this.$emit("inline-image-click")},insertInlineImage(e){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().setImage({src:e}).run()},onBlockquoteToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleBlockquote().run()},insertInMessageBody(e){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().insertContent(e).run()},setCursorPosition(e=null){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus(e).run()},onTextInput(e){this.$emit("text-input",e)},onFocus(e){this.hasFocus=!0,this.$emit("focus",e)},onBlur(e){this.hasFocus=!1,this.$emit("blur",e)},onInput(e){this.$emit("input",e)},getButtonKey(e,t){return`${e}-${JSON.stringify(t)}`},getButtonRef(e,t){return`${this.getButtonKey(e,t)}-ref`},canFocus(e){return e===this.orderedRefs[this.currentButtonRefIndex]},shiftActionBarFocusRight(){this.shiftButtonRefIndex(1)},shiftActionBarFocusLeft(){this.shiftButtonRefIndex(-1)},shiftButtonRefIndex(e){const t=this.$refs[this.orderedRefs[this.currentButtonRefIndex]],i=Array.isArray(t)?t[0]:t,n=(this.currentButtonRefIndex+e)%this.orderedRefs.length;this.currentButtonRefIndex=n>=0?n:this.orderedRefs.length+n;const r=this.$refs[this.orderedRefs[this.currentButtonRefIndex]],s=Array.isArray(r)?r[0]:r;i.$el.blur(),s.$el.focus()}}};var T=function(){var t=this,i=t._self._c;return i("div",{staticClass:"d-recipe-editor",attrs:{"data-qa":"dt-recipe-editor",role:"presentation"},on:{click:function(n){return t.$refs.richTextEditor.focusEditor()}}},[i("dt-stack",{staticClass:"d-recipe-editor__top-bar",attrs:{direction:"row",gap:"450"}},[t._l(t.buttonGroups,function(n){return i("dt-stack",{key:n.key,attrs:{direction:"row",gap:"300"}},[t._l(n.buttonGroup,function(r){return i("dt-tooltip",{key:t.getButtonKey(n.key,r.selector),attrs:{message:r.tooltipMessage,placement:"top"},scopedSlots:t._u([{key:"anchor",fn:function(){var s,u;return[i("dt-button",{ref:t.getButtonRef(n.key,r.selector),refInFor:!0,attrs:{active:(u=(s=t.$refs.richTextEditor)==null?void 0:s.editor)==null?void 0:u.isActive(r.selector),"aria-label":r.tooltipMessage,"data-qa":r.dataQA,tabindex:t.canFocus(t.getButtonRef(n.key,r.selector))?0:-1,importance:"clear",kind:"muted",size:"xs"},on:{click:function(l){return r.onClick()},keydown:[function(l){return!l.type.indexOf("key")&&t._k(l.keyCode,"right",39,l.key,["Right","ArrowRight"])||"button"in l&&l.button!==2?null:(l.stopPropagation(),t.shiftActionBarFocusRight.apply(null,arguments))},function(l){return!l.type.indexOf("key")&&t._k(l.keyCode,"left",37,l.key,["Left","ArrowLeft"])||"button"in l&&l.button!==0?null:(l.stopPropagation(),t.shiftActionBarFocusLeft.apply(null,arguments))}]},scopedSlots:t._u([{key:"icon",fn:function(){return[i(r.icon,{tag:"component",attrs:{size:"200"}})]},proxy:!0}],null,!0)},[r.label?i("span",[t._v(t._s(r.label))]):t._e()])]},proxy:!0}],null,!0)})}),i("div",{staticClass:"d-recipe-editor__button-group-divider"})],2)}),t.linkButton.showBtn?i("dt-stack",{attrs:{direction:"row",gap:"300"}},[i("dt-popover",{attrs:{open:t.showLinkInput,"show-close-button":!1,"data-qa":"dt-recipe-editor-link-input-popover",padding:"none",placement:"bottom-start"},on:{"update:open":function(n){t.showLinkInput=n},click:t.onInputFocus,opened:t.updateInput},nativeOn:{click:function(n){return n.stopPropagation(),t.onInputFocus.apply(null,arguments)}},scopedSlots:t._u([{key:"anchor",fn:function(){return[i("dt-tooltip",{key:t.linkButton.key,attrs:{message:t.linkButton.tooltipMessage,placement:"top"},scopedSlots:t._u([{key:"anchor",fn:function(){var n,r;return[i("dt-button",{ref:t.getButtonRef("custom","link"),attrs:{active:(r=(n=t.$refs.richTextEditor)==null?void 0:n.editor)==null?void 0:r.isActive(t.linkButton.selector),"aria-label":t.linkButton.tooltipMessage,"data-qa":t.linkButton.dataQA,tabindex:t.canFocus(t.getButtonRef("custom","link"))?0:-1,importance:"clear",kind:"muted",size:"xs"},on:{click:function(s){return t.linkButton.onClick()},keydown:[function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"right",39,s.key,["Right","ArrowRight"])||"button"in s&&s.button!==2?null:(s.stopPropagation(),t.shiftActionBarFocusRight.apply(null,arguments))},function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"left",37,s.key,["Left","ArrowLeft"])||"button"in s&&s.button!==0?null:(s.stopPropagation(),t.shiftActionBarFocusLeft.apply(null,arguments))}]},scopedSlots:t._u([{key:"icon",fn:function(){return[i(t.linkButton.icon,{tag:"component",attrs:{size:"200"}})]},proxy:!0}],null,!1,3601441856)})]},proxy:!0}],null,!1,1067010212)})]},proxy:!0},{key:"content",fn:function(){return[i("div",{staticClass:"d-recipe-editor__popover-content"},[i("span",[t._v(" "+t._s(t.showAddLinkButtonLabels.title)+" ")]),i("dt-input",{attrs:{"input-aria-label":t.showAddLinkButtonLabels["aria-label"],placeholder:t.setLinkPlaceholder,"data-qa":"dt-recipe-editor-link-input","input-wrapper-class":"d-recipe-editor-link__input-wrapper"},on:{click:t.onInputFocus,focus:t.onInputFocus,keydown:function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"enter",13,n.key,"Enter")?null:t.setLink.apply(null,arguments)}},nativeOn:{click:function(n){return n.stopPropagation(),t.onInputFocus.apply(null,arguments)}},model:{value:t.linkInput,callback:function(n){t.linkInput=n},expression:"linkInput"}})],1)]},proxy:!0},{key:"footerContent",fn:function(){return[i("dt-stack",{staticClass:"d-recipe-editor__popover-footer",attrs:{direction:"row",gap:"300"}},[i("dt-button",t._b({attrs:{"data-qa":"dt-recipe-editor-remove-link-btn",importance:"clear",kind:"muted",size:"sm"},on:{click:t.removeLink}},"dt-button",t.removeLinkButtonLabels,!1),[t._v(" "+t._s(t.removeLinkButtonLabels.title)+" ")]),i("dt-button",t._b({attrs:{"data-qa":"dt-recipe-editor-set-link-cancel-btn",importance:"clear",kind:"muted",size:"sm"},on:{click:t.closeLinkInput}},"dt-button",t.cancelSetLinkButtonLabels,!1),[t._v(" "+t._s(t.cancelSetLinkButtonLabels.title)+" ")]),i("dt-button",t._b({attrs:{"data-qa":"dt-recipe-editor-set-link-confirm-btn",size:"sm"},on:{click:t.setLink}},"dt-button",t.confirmSetLinkButtonLabels,!1),[t._v(" "+t._s(t.confirmSetLinkButtonLabels.title)+" ")])],1)]},proxy:!0}],null,!1,2563529431)})],1):t._e()],2),i("div",{staticClass:"d-recipe-editor__content",style:{"max-height":t.maxHeight}},[i("dt-rich-text-editor",t._b({ref:"richTextEditor",attrs:{"allow-font-color":!0,"allow-font-family":!0,"allow-inline-images":!0,"allow-line-breaks":!0,"hide-link-bubble-menu":!0,"auto-focus":t.autoFocus,editable:t.editable,"input-aria-label":t.inputAriaLabel,"input-class":`d-recipe-editor__content-input ${t.inputClass}`,link:!0,"output-format":t.htmlOutputFormat,placeholder:t.placeholder,"use-div-tags":t.useDivTags,"data-qa":"dt-rich-text-editor"},on:{"text-input":t.onTextInput,blur:t.onBlur,focus:t.onFocus,input:function(n){return t.onInput(n)}},model:{value:t.internalInputValue,callback:function(n){t.internalInputValue=n},expression:"internalInputValue"}},"dt-rich-text-editor",t.$attrs,!1))],1)],1)},L=[],A=h.n(_,T,L);const E=A.exports;exports.default=E;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("./editor-constants.cjs"),o=require("@dialpad/dialtone-icons/vue2"),d=require("../../localization/index.cjs"),h=require("../../_plugin-vue2_normalizer-e_CkxkSV.cjs"),p=require("../tooltip/tooltip.cjs"),f=require("../input/input.cjs"),k=require("../stack/stack.cjs"),g=require("../popover/popover.cjs"),B=require("../button/button.cjs"),I=require("../rich-text-editor/rich-text-editor.cjs"),a=require("../rich-text-editor/rich-text-editor-constants.cjs"),_={name:"DtRecipeEditor",components:{DtRichTextEditor:I.default,DtButton:B.default,DtPopover:g.default,DtStack:k.default,DtInput:f.default,DtTooltip:p.default,DtIconQuickReply:o.DtIconQuickReply,DtIconBold:o.DtIconBold,DtIconItalic:o.DtIconItalic,DtIconUnderline:o.DtIconUnderline,DtIconStrikethrough:o.DtIconStrikethrough,DtIconListBullet:o.DtIconListBullet,DtIconListOrdered:o.DtIconListOrdered,DtIconAlignLeft:o.DtIconAlignLeft,DtIconAlignCenter:o.DtIconAlignCenter,DtIconAlignRight:o.DtIconAlignRight,DtIconAlignJustify:o.DtIconAlignJustify,DtIconQuote:o.DtIconQuote,DtIconCodeBlock:o.DtIconCodeBlock,DtIconLink2:o.DtIconLink2,DtIconImage:o.DtIconImage},inheritAttrs:!1,props:{value:{type:[Object,String],default:""},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:""},inputClass:{type:String,default:""},autoFocus:{type:[Boolean,String,Number],default:!1,validator(e){return typeof e=="string"?a.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},placeholder:{type:String,default:""},maxHeight:{type:String,default:"unset"},setLinkPlaceholder:{type:String,default:""},showBoldButton:{type:Boolean,default:!0},showItalicsButton:{type:Boolean,default:!0},showUnderlineButton:{type:Boolean,default:!0},showStrikeButton:{type:Boolean,default:!0},showListItemsButton:{type:Boolean,default:!0},showOrderedListButton:{type:Boolean,default:!0},showAlignLeftButton:{type:Boolean,default:!0},showAlignCenterButton:{type:Boolean,default:!0},showAlignRightButton:{type:Boolean,default:!0},showAlignJustifyButton:{type:Boolean,default:!0},showQuoteButton:{type:Boolean,default:!0},showCodeBlockButton:{type:Boolean,default:!0},showQuickRepliesButton:{type:Boolean,default:!0},showInlineImageButton:{type:Boolean,default:!1},showAddLink:{type:Object,default:()=>({showAddLinkButton:!0})},useDivTags:{type:Boolean,default:!1}},emits:["focus","blur","input","quick-replies-click","inline-image-click","text-input"],data(){return{internalInputValue:this.value,hasFocus:!1,linkOptions:{class:"d-recipe-editor__link"},showLinkInput:!1,linkInput:"",currentButtonRefIndex:0,i18n:new d.DialtoneLocalization}},computed:{inputLength(){return this.internalInputValue.length},htmlOutputFormat(){return a.RICH_TEXT_EDITOR_OUTPUT_FORMATS[2]},showingTextFormatButtons(){return this.showBoldButton||this.showItalicsButton||this.showStrikeButton||this.showUnderlineButton},showingAlignmentButtons(){return this.showAlignLeftButton||this.showAlignCenterButton||this.showAlignRightButton||this.showAlignJustifyButton},showingListButtons(){return this.showListItemsButton||this.showOrderedListButton},orderedRefs(){const e=this.buttonGroups.reduce((function(t,i){return i.buttonGroup.forEach(n=>{t.push(this.getButtonRef(i.key,n.selector))},this),t}).bind(this),[]);return e.push(this.getButtonRef("custom","link")),e},buttonGroups(){const e=this.individualButtons.map(t=>({key:t.selector,buttonGroup:[t]}));return[{key:"new",buttonGroup:this.newButtons},{key:"format",buttonGroup:this.textFormatButtons},{key:"alignment",buttonGroup:this.alignmentButtons},{key:"list",buttonGroup:this.listButtons},...e].filter(t=>t.buttonGroup.length>0)},newButtons(){return[{showBtn:this.showQuickRepliesButton,label:this.i18n.$t("DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL"),selector:"quickReplies",icon:o.DtIconQuickReply,dataQA:"dt-recipe-editor-quick-replies-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL"),onClick:this.onQuickRepliesClick}].filter(e=>e.showBtn)},textFormatButtons(){return[{showBtn:this.showBoldButton,selector:"bold",icon:o.DtIconBold,dataQA:"dt-recipe-editor-bold-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_BOLD_BUTTON_LABEL"),onClick:this.onBoldTextToggle},{showBtn:this.showItalicsButton,selector:"italic",icon:o.DtIconItalic,dataQA:"dt-recipe-editor-italics-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ITALICS_BUTTON_LABEL"),onClick:this.onItalicTextToggle},{showBtn:this.showUnderlineButton,selector:"underline",icon:o.DtIconUnderline,dataQA:"dt-recipe-editor-underline-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL"),onClick:this.onUnderlineTextToggle},{showBtn:this.showStrikeButton,selector:"strike",icon:o.DtIconStrikethrough,dataQA:"dt-recipe-editor-strike-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_STRIKE_BUTTON_LABEL"),onClick:this.onStrikethroughTextToggle}].filter(e=>e.showBtn)},alignmentButtons(){return[{showBtn:this.showAlignLeftButton,selector:{textAlign:"left"},icon:o.DtIconAlignLeft,dataQA:"dt-recipe-editor-align-left-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL"),onClick:()=>this.onTextAlign("left")},{showBtn:this.showAlignCenterButton,selector:{textAlign:"center"},icon:o.DtIconAlignCenter,dataQA:"dt-recipe-editor-align-center-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL"),onClick:()=>this.onTextAlign("center")},{showBtn:this.showAlignRightButton,selector:{textAlign:"right"},icon:o.DtIconAlignRight,dataQA:"dt-recipe-editor-align-right-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL"),onClick:()=>this.onTextAlign("right")},{showBtn:this.showAlignJustifyButton,selector:{textAlign:"justify"},icon:o.DtIconAlignJustify,dataQA:"dt-recipe-editor-align-justify-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL"),onClick:()=>this.onTextAlign("justify")}].filter(e=>e.showBtn)},listButtons(){return[{showBtn:this.showListItemsButton,selector:"bulletList",icon:o.DtIconListBullet,dataQA:"dt-recipe-editor-list-items-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL"),onClick:this.onBulletListToggle},{showBtn:this.showOrderedListButton,selector:"orderedList",icon:o.DtIconListOrdered,dataQA:"dt-recipe-editor-ordered-list-items-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL"),onClick:this.onOrderedListToggle}].filter(e=>e.showBtn)},individualButtons(){return[{showBtn:this.showQuoteButton,selector:"blockquote",icon:o.DtIconQuote,dataQA:"dt-recipe-editor-blockquote-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_QUOTE_BUTTON_LABEL"),onClick:this.onBlockquoteToggle},{showBtn:this.showCodeBlockButton,selector:"codeBlock",icon:o.DtIconCodeBlock,dataQA:"dt-recipe-editor-code-block-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_CODE_BUTTON_LABEL"),onClick:this.onCodeBlockToggle},{showBtn:this.showInlineImageButton,selector:"image",icon:o.DtIconImage,dataQA:"dt-recipe-editor-inline-image-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_IMAGE_BUTTON_LABEL"),onClick:this.onInsertInlineImageClick}].filter(e=>e.showBtn)},linkButton(){return{showBtn:this.showAddLink.showAddLinkButton,selector:"link",icon:o.DtIconLink2,dataQA:"dt-recipe-editor-add-link-btn",tooltipMessage:this.i18n.$t("DIALTONE_EDITOR_LINK_BUTTON_LABEL"),onClick:this.openLinkInput}},confirmSetLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON")},cancelSetLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON")},removeLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_REMOVE_LINK_BUTTON")},showAddLinkButtonLabels(){return this.i18n.$ta("DIALTONE_EDITOR_ADD_LINK_BUTTON")}},watch:{value(e){this.internalInputValue=e}},methods:{onInputFocus(e){e==null||e.stopPropagation()},removeLink(){var e,t,i,n,r;(r=(n=(i=(t=(e=this.$refs.richTextEditor)==null?void 0:e.editor)==null?void 0:t.chain())==null?void 0:i.focus())==null?void 0:n.unsetLink())==null||r.run(),this.closeLinkInput()},setLink(e){var r,s,u;const t=(r=this.$refs.richTextEditor)==null?void 0:r.editor;if(e==null||e.preventDefault(),e==null||e.stopPropagation(),!this.linkInput){this.removeLink();return}c.EDITOR_SUPPORTED_LINK_PROTOCOLS.find(l=>l.test(this.linkInput))||(this.linkInput=`${c.EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`);const n=(u=(s=t==null?void 0:t.view)==null?void 0:s.state)==null?void 0:u.selection;n.anchor===n.head?t.chain().focus().insertContentAt(n.anchor,`<a class="${this.linkOptions.class}" href=${this.linkInput}>${this.linkInput}</a>`).run():t.chain().focus().extendMarkRange("link").setLink({href:this.linkInput,class:this.linkOptions.class}).run(),this.closeLinkInput()},openLinkInput(){this.showLinkInput=!0},updateInput(e){var t,i,n;if(!e)return this.closeLinkInput();this.linkInput=(n=(i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)==null?void 0:i.getAttributes("link"))==null?void 0:n.href},closeLinkInput(){var e;this.showLinkInput=!1,this.linkInput="",(e=this.$refs.richTextEditor.editor)==null||e.chain().focus()},onBoldTextToggle(){var e,t;(t=(e=this.$refs.richTextEditor)==null?void 0:e.editor)==null||t.chain().focus().toggleBold().run()},onItalicTextToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleItalic().run()},onUnderlineTextToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleUnderline().run()},onStrikethroughTextToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleStrike().run()},onTextAlign(e){var t,i,n,r;if((i=(t=this.$refs.richTextEditor)==null?void 0:t.editor)!=null&&i.isActive({textAlign:e}))return(n=this.$refs.richTextEditor)==null?void 0:n.editor.chain().focus().unsetTextAlign().run();(r=this.$refs.richTextEditor)==null||r.editor.chain().focus().setTextAlign(e).run()},onBulletListToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleBulletList().run()},onOrderedListToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleOrderedList().run()},onCodeBlockToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleCodeBlock().run()},onQuickRepliesClick(){this.$emit("quick-replies-click")},onInsertInlineImageClick(){this.$emit("inline-image-click")},insertInlineImage(e){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().setImage({src:e}).run()},onBlockquoteToggle(){var e;(e=this.$refs.richTextEditor)==null||e.editor.chain().focus().toggleBlockquote().run()},insertInMessageBody(e){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus().insertContent(e).run()},setCursorPosition(e=null){var t;(t=this.$refs.richTextEditor)==null||t.editor.chain().focus(e).run()},onTextInput(e){this.$emit("text-input",e)},onFocus(e){this.hasFocus=!0,this.$emit("focus",e)},onBlur(e){this.hasFocus=!1,this.$emit("blur",e)},onInput(e){this.$emit("input",e)},getButtonKey(e,t){return`${e}-${JSON.stringify(t)}`},getButtonRef(e,t){return`${this.getButtonKey(e,t)}-ref`},canFocus(e){return e===this.orderedRefs[this.currentButtonRefIndex]},shiftActionBarFocusRight(){this.shiftButtonRefIndex(1)},shiftActionBarFocusLeft(){this.shiftButtonRefIndex(-1)},shiftButtonRefIndex(e){const t=this.$refs[this.orderedRefs[this.currentButtonRefIndex]],i=Array.isArray(t)?t[0]:t,n=(this.currentButtonRefIndex+e)%this.orderedRefs.length;this.currentButtonRefIndex=n>=0?n:this.orderedRefs.length+n;const r=this.$refs[this.orderedRefs[this.currentButtonRefIndex]],s=Array.isArray(r)?r[0]:r;i.$el.blur(),s.$el.focus()}}};var T=function(){var t=this,i=t._self._c;return i("div",{staticClass:"d-recipe-editor",attrs:{"data-qa":"dt-recipe-editor",role:"presentation"},on:{click:function(n){return t.$refs.richTextEditor.focusEditor()}}},[i("dt-stack",{staticClass:"d-recipe-editor__top-bar",attrs:{direction:"row",gap:"450"}},[t._l(t.buttonGroups,function(n){return i("dt-stack",{key:n.key,attrs:{direction:"row",gap:"300"}},[t._l(n.buttonGroup,function(r){return i("dt-tooltip",{key:t.getButtonKey(n.key,r.selector),attrs:{message:r.tooltipMessage,placement:"top"},scopedSlots:t._u([{key:"anchor",fn:function(){var s,u;return[i("dt-button",{ref:t.getButtonRef(n.key,r.selector),refInFor:!0,attrs:{active:(u=(s=t.$refs.richTextEditor)==null?void 0:s.editor)==null?void 0:u.isActive(r.selector),"aria-label":r.tooltipMessage,"data-qa":r.dataQA,tabindex:t.canFocus(t.getButtonRef(n.key,r.selector))?0:-1,importance:"clear",kind:"muted",size:"xs"},on:{click:function(l){return r.onClick()},keydown:[function(l){return!l.type.indexOf("key")&&t._k(l.keyCode,"right",39,l.key,["Right","ArrowRight"])||"button"in l&&l.button!==2?null:(l.stopPropagation(),t.shiftActionBarFocusRight.apply(null,arguments))},function(l){return!l.type.indexOf("key")&&t._k(l.keyCode,"left",37,l.key,["Left","ArrowLeft"])||"button"in l&&l.button!==0?null:(l.stopPropagation(),t.shiftActionBarFocusLeft.apply(null,arguments))}]},scopedSlots:t._u([{key:"icon",fn:function(){return[i(r.icon,{tag:"component",attrs:{size:"200"}})]},proxy:!0}],null,!0)},[r.label?i("span",[t._v(t._s(r.label))]):t._e()])]},proxy:!0}],null,!0)})}),i("div",{staticClass:"d-recipe-editor__button-group-divider"})],2)}),t.linkButton.showBtn?i("dt-stack",{attrs:{direction:"row",gap:"300"}},[i("dt-popover",{attrs:{open:t.showLinkInput,"show-close-button":!1,"data-qa":"dt-recipe-editor-link-input-popover",padding:"none",placement:"bottom-start"},on:{"update:open":function(n){t.showLinkInput=n},click:t.onInputFocus,opened:t.updateInput},nativeOn:{click:function(n){return n.stopPropagation(),t.onInputFocus.apply(null,arguments)}},scopedSlots:t._u([{key:"anchor",fn:function(){return[i("dt-tooltip",{key:t.linkButton.key,attrs:{message:t.linkButton.tooltipMessage,placement:"top"},scopedSlots:t._u([{key:"anchor",fn:function(){var n,r;return[i("dt-button",{ref:t.getButtonRef("custom","link"),attrs:{active:(r=(n=t.$refs.richTextEditor)==null?void 0:n.editor)==null?void 0:r.isActive(t.linkButton.selector),"aria-label":t.linkButton.tooltipMessage,"data-qa":t.linkButton.dataQA,tabindex:t.canFocus(t.getButtonRef("custom","link"))?0:-1,importance:"clear",kind:"muted",size:"xs"},on:{click:function(s){return t.linkButton.onClick()},keydown:[function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"right",39,s.key,["Right","ArrowRight"])||"button"in s&&s.button!==2?null:(s.stopPropagation(),t.shiftActionBarFocusRight.apply(null,arguments))},function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"left",37,s.key,["Left","ArrowLeft"])||"button"in s&&s.button!==0?null:(s.stopPropagation(),t.shiftActionBarFocusLeft.apply(null,arguments))}]},scopedSlots:t._u([{key:"icon",fn:function(){return[i(t.linkButton.icon,{tag:"component",attrs:{size:"200"}})]},proxy:!0}],null,!1,3601441856)})]},proxy:!0}],null,!1,1067010212)})]},proxy:!0},{key:"content",fn:function(){return[i("div",{staticClass:"d-recipe-editor__popover-content"},[i("span",[t._v(" "+t._s(t.showAddLinkButtonLabels.title)+" ")]),i("dt-input",{attrs:{"input-aria-label":t.showAddLinkButtonLabels["aria-label"],placeholder:t.setLinkPlaceholder,"data-qa":"dt-recipe-editor-link-input","input-wrapper-class":"d-recipe-editor-link__input-wrapper"},on:{click:t.onInputFocus,focus:t.onInputFocus,keydown:function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"enter",13,n.key,"Enter")?null:t.setLink.apply(null,arguments)}},nativeOn:{click:function(n){return n.stopPropagation(),t.onInputFocus.apply(null,arguments)}},model:{value:t.linkInput,callback:function(n){t.linkInput=n},expression:"linkInput"}})],1)]},proxy:!0},{key:"footerContent",fn:function(){return[i("dt-stack",{staticClass:"d-recipe-editor__popover-footer",attrs:{direction:"row",gap:"300"}},[i("dt-button",t._b({attrs:{"data-qa":"dt-recipe-editor-remove-link-btn",importance:"clear",kind:"muted",size:"sm"},on:{click:t.removeLink}},"dt-button",t.removeLinkButtonLabels,!1),[t._v(" "+t._s(t.removeLinkButtonLabels.title)+" ")]),i("dt-button",t._b({attrs:{"data-qa":"dt-recipe-editor-set-link-cancel-btn",importance:"clear",kind:"muted",size:"sm"},on:{click:t.closeLinkInput}},"dt-button",t.cancelSetLinkButtonLabels,!1),[t._v(" "+t._s(t.cancelSetLinkButtonLabels.title)+" ")]),i("dt-button",t._b({attrs:{"data-qa":"dt-recipe-editor-set-link-confirm-btn",size:"sm"},on:{click:t.setLink}},"dt-button",t.confirmSetLinkButtonLabels,!1),[t._v(" "+t._s(t.confirmSetLinkButtonLabels.title)+" ")])],1)]},proxy:!0}],null,!1,2563529431)})],1):t._e()],2),i("div",{staticClass:"d-recipe-editor__content",style:{"max-height":t.maxHeight}},[i("dt-rich-text-editor",t._b({ref:"richTextEditor",attrs:{"allow-font-color":!0,"allow-font-family":!0,"allow-inline-images":!0,"allow-line-breaks":!0,"hide-link-bubble-menu":!0,"auto-focus":t.autoFocus,editable:t.editable,"input-aria-label":t.inputAriaLabel,"input-class":`d-recipe-editor__content-input ${t.inputClass}`,link:!0,"output-format":t.htmlOutputFormat,placeholder:t.placeholder,"use-div-tags":t.useDivTags,"data-qa":"dt-rich-text-editor"},on:{"text-input":t.onTextInput,blur:t.onBlur,focus:t.onFocus,input:function(n){return t.onInput(n)}},model:{value:t.internalInputValue,callback:function(n){t.internalInputValue=n},expression:"internalInputValue"}},"dt-rich-text-editor",t.$attrs,!1))],1)],1)},L=[],A=h.n(_,T,L);const E=A.exports;exports.default=E;
2
2
  //# sourceMappingURL=editor.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor.cjs","sources":["../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n\n class=\"d-recipe-editor\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-tooltip\n v-for=\"button in buttonGroup.buttonGroup\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :message=\"button.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"button.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n />\n </template>\n <span v-if=\"button.label\">{{ button.label }}</span>\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"d-recipe-editor__button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open.sync=\"showLinkInput\"\n :show-close-button=\"false\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.native.stop=\"onInputFocus\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :ref=\"getButtonRef('custom', 'link')\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n :tabindex=\"canFocus(getButtonRef('custom', 'link')) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-content\">\n <span>\n {{ showAddLinkButtonLabels.title }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLinkButtonLabels['aria-label']\"\n :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.native.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"removeLinkButtonLabels\"\n @click=\"removeLink\"\n >\n {{ removeLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"cancelSetLinkButtonLabels\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n v-bind=\"confirmSetLinkButtonLabels\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButtonLabels.title }}\n </dt-button>\n </dt-stack>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n :style=\"{ 'max-height': maxHeight }\"\n class=\"d-recipe-editor__content\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-font-color=\"true\"\n :allow-font-family=\"true\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n :use-div-tags=\"useDivTags\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"$attrs\"\n @text-input=\"onTextInput\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput($event)\"\n />\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from './editor_constants.js';\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconImage,\n DtIconItalic,\n DtIconQuickReply,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n} from '@dialpad/dialtone-icons/vue2';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtIconQuickReply,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n DtIconImage,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n value: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n /**\n * Placeholder text for the set link input field\n */\n setLinkPlaceholder: {\n type: String,\n default: '',\n },\n\n /**\n * Show button to render text as bold\n */\n showBoldButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render text in italics\n */\n showItalicsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to underline text\n */\n showUnderlineButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to strike text\n */\n showStrikeButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render list items\n */\n showListItemsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render ordered list items\n */\n showOrderedListButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the left\n */\n showAlignLeftButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the center\n */\n showAlignCenterButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the right\n */\n showAlignRightButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to justify text\n */\n showAlignJustifyButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add quote format to text\n */\n showQuoteButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add code block\n */\n showCodeBlockButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to handle quick replies\n */\n showQuickRepliesButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add an inline image\n */\n showInlineImageButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n }),\n },\n\n /**\n * Use div tags instead of paragraph tags to show text\n */\n useDivTags: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n\n /**\n * Emit when inline image button is clicked\n * @event inline-image-click\n */\n 'inline-image-click',\n\n /**\n * Emit when text content changes (not raw html)\n */\n 'text-input',\n ],\n\n data () {\n return {\n internalInputValue: this.value, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-recipe-editor__link',\n },\n\n showLinkInput: false,\n linkInput: '',\n currentButtonRefIndex: 0,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n showingTextFormatButtons () {\n return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;\n },\n\n showingAlignmentButtons () {\n return this.showAlignLeftButton || this.showAlignCenterButton ||\n this.showAlignRightButton || this.showAlignJustifyButton;\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n orderedRefs () {\n const refs = this.buttonGroups.reduce(function (acc, buttonData) {\n buttonData.buttonGroup.forEach(button => {\n acc.push(this.getButtonRef(buttonData.key, button.selector));\n }, this);\n return acc;\n }.bind(this), []);\n refs.push(this.getButtonRef('custom', 'link'));\n return refs;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(buttonData => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }));\n return [\n { key: 'new', buttonGroup: this.newButtons },\n { key: 'format', buttonGroup: this.textFormatButtons },\n { key: 'alignment', buttonGroup: this.alignmentButtons },\n { key: 'list', buttonGroup: this.listButtons },\n ...individualButtonStacks,\n ].filter(buttonGroupData => buttonGroupData.buttonGroup.length > 0);\n },\n\n newButtons () {\n return [\n {\n showBtn: this.showQuickRepliesButton,\n label: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n selector: 'quickReplies',\n icon: DtIconQuickReply,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showBoldButton,\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BOLD_BUTTON_LABEL'),\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ITALICS_BUTTON_LABEL'),\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL'),\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_STRIKE_BUTTON_LABEL'),\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL'),\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL'),\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUOTE_BUTTON_LABEL'),\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_CODE_BUTTON_LABEL'),\n onClick: this.onCodeBlockToggle,\n },\n {\n showBtn: this.showInlineImageButton,\n selector: 'image',\n icon: DtIconImage,\n dataQA: 'dt-recipe-editor-inline-image-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_IMAGE_BUTTON_LABEL'),\n onClick: this.onInsertInlineImageClick,\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_LINK_BUTTON_LABEL'),\n onClick: this.openLinkInput,\n };\n },\n\n confirmSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON');\n },\n\n cancelSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON');\n },\n\n removeLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_REMOVE_LINK_BUTTON');\n },\n\n showAddLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_ADD_LINK_BUTTON');\n },\n },\n\n watch: {\n value (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n onInputFocus (event) {\n event?.stopPropagation();\n },\n\n removeLink () {\n this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run();\n this.closeLinkInput();\n },\n\n setLink (event) {\n const editor = this.$refs.richTextEditor?.editor;\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.linkInput) {\n // If link text is set to empty string,\n // remove any existing links.\n this.removeLink();\n return;\n }\n\n // Check if input matches any of the supported link formats\n const prefix = EDITOR_SUPPORTED_LINK_PROTOCOLS.find(prefixRegex => prefixRegex.test(this.linkInput));\n\n if (!prefix) {\n // If no matching pattern is found, prepend default prefix\n this.linkInput = `${EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`;\n }\n\n const selection = editor?.view?.state?.selection;\n\n if (selection.anchor === selection.head) {\n // If no text has been selected, manually insert the link text.\n // Do not rely on link options set through DtRichTextEditor\n // component, because they clash with these and cause issues.\n editor\n .chain()\n .focus()\n .insertContentAt(\n selection.anchor,\n `<a class=\"${this.linkOptions.class}\" href=${this.linkInput}>${this.linkInput}</a>`,\n )\n .run();\n } else {\n // Set or edit the link\n editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: this.linkInput, class: this.linkOptions.class })\n .run();\n }\n\n this.closeLinkInput();\n },\n\n openLinkInput () {\n this.showLinkInput = true;\n },\n\n updateInput (openedInput) {\n if (!openedInput) {\n return this.closeLinkInput();\n }\n this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes('link')?.href;\n },\n\n closeLinkInput () {\n this.showLinkInput = false;\n this.linkInput = '';\n this.$refs.richTextEditor.editor?.chain().focus();\n },\n\n onBoldTextToggle () {\n this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();\n },\n\n onItalicTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();\n },\n\n onUnderlineTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();\n },\n\n onStrikethroughTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();\n },\n\n onTextAlign (alignment) {\n if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();\n }\n this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(alignment).run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onInsertInlineImageClick () {\n this.$emit('inline-image-click');\n },\n\n insertInlineImage (imageUrl) {\n this.$refs.richTextEditor?.editor.chain().focus().setImage({ src: imageUrl }).run();\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();\n },\n\n insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\n },\n\n onTextInput (event) {\n this.$emit('text-input', event);\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n },\n\n getButtonKey (key, selector) {\n return `${key}-${JSON.stringify(selector)}`;\n },\n\n // Unique Button Ref Key to identify ref\n getButtonRef (key, selector) {\n return `${this.getButtonKey(key, selector)}-ref`;\n },\n\n /**\n * Determines if an element in the action bar button list is focusable with tab key\n * @param {string} refKey - unique identifier for the ref element in DOM\n */\n canFocus (refKey) {\n return refKey === this.orderedRefs[this.currentButtonRefIndex];\n },\n\n shiftActionBarFocusRight () {\n this.shiftButtonRefIndex(1);\n },\n\n shiftActionBarFocusLeft () {\n this.shiftButtonRefIndex(-1);\n },\n\n shiftButtonRefIndex (shiftAmount) {\n const previousRef = this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n const previousActionBarBtn = Array.isArray(previousRef) ? previousRef[0] : previousRef;\n const index = (this.currentButtonRefIndex + shiftAmount) % this.orderedRefs.length;\n this.currentButtonRefIndex = index >= 0 ? index : this.orderedRefs.length + index;\n const currentRef = this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n const currentActionBarBtn = Array.isArray(currentRef) ? currentRef[0] : currentRef;\n previousActionBarBtn.$el.blur();\n currentActionBarBtn.$el.focus();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtRichTextEditor","DtButton","DtPopover","DtStack","DtInput","DtTooltip","DtIconQuickReply","DtIconBold","DtIconItalic","DtIconUnderline","DtIconStrikethrough","DtIconListBullet","DtIconListOrdered","DtIconAlignLeft","DtIconAlignCenter","DtIconAlignRight","DtIconAlignJustify","DtIconQuote","DtIconCodeBlock","DtIconLink2","DtIconImage","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","DialtoneLocalization","RICH_TEXT_EDITOR_OUTPUT_FORMATS","refs","acc","buttonData","button","individualButtonStacks","buttonGroupData","newValue","event","_e","_d","_c","_b","_a","editor","EDITOR_SUPPORTED_LINK_PROTOCOLS","prefixRegex","EDITOR_DEFAULT_LINK_PREFIX","selection","openedInput","alignment","imageUrl","messageContent","position","key","selector","refKey","shiftAmount","previousRef","previousActionBarBtn","index","currentRef","currentActionBarBtn"],"mappings":"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"}
1
+ {"version":3,"file":"editor.cjs","sources":["../../../recipes/conversation_view/editor/editor.vue"],"sourcesContent":["<template>\n <div\n\n class=\"d-recipe-editor\"\n data-qa=\"dt-recipe-editor\"\n role=\"presentation\"\n @click=\"$refs.richTextEditor.focusEditor()\"\n >\n <!-- Section for the top UI -->\n <dt-stack\n class=\"d-recipe-editor__top-bar\"\n direction=\"row\"\n gap=\"450\"\n >\n <dt-stack\n v-for=\"buttonGroup in buttonGroups\"\n :key=\"buttonGroup.key\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-tooltip\n v-for=\"button in buttonGroup.buttonGroup\"\n :key=\"getButtonKey(buttonGroup.key, button.selector)\"\n :message=\"button.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :ref=\"getButtonRef(buttonGroup.key, button.selector)\"\n :active=\"$refs.richTextEditor?.editor?.isActive(button.selector)\"\n :aria-label=\"button.tooltipMessage\"\n :data-qa=\"button.dataQA\"\n :tabindex=\"canFocus(getButtonRef(buttonGroup.key, button.selector)) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"button.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n >\n <template #icon>\n <component\n :is=\"button.icon\"\n size=\"200\"\n />\n </template>\n <span v-if=\"button.label\">{{ button.label }}</span>\n </dt-button>\n </template>\n </dt-tooltip>\n <div class=\"d-recipe-editor__button-group-divider\" />\n </dt-stack>\n <dt-stack\n v-if=\"linkButton.showBtn\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-popover\n :open.sync=\"showLinkInput\"\n :show-close-button=\"false\"\n data-qa=\"dt-recipe-editor-link-input-popover\"\n padding=\"none\"\n placement=\"bottom-start\"\n @click=\"onInputFocus\"\n @opened=\"updateInput\"\n @click.native.stop=\"onInputFocus\"\n >\n <template #anchor>\n <dt-tooltip\n :key=\"linkButton.key\"\n :message=\"linkButton.tooltipMessage\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n :ref=\"getButtonRef('custom', 'link')\"\n :active=\"$refs.richTextEditor?.editor?.isActive(linkButton.selector)\"\n :aria-label=\"linkButton.tooltipMessage\"\n :data-qa=\"linkButton.dataQA\"\n :tabindex=\"canFocus(getButtonRef('custom', 'link')) ? 0 : -1\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n @click=\"linkButton.onClick()\"\n @keydown.right.stop=\"shiftActionBarFocusRight\"\n @keydown.left.stop=\"shiftActionBarFocusLeft\"\n >\n <template #icon>\n <component\n :is=\"linkButton.icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-tooltip>\n </template>\n\n <template #content>\n <div class=\"d-recipe-editor__popover-content\">\n <span>\n {{ showAddLinkButtonLabels.title }}\n </span>\n <dt-input\n v-model=\"linkInput\"\n :input-aria-label=\"showAddLinkButtonLabels['aria-label']\"\n :placeholder=\"setLinkPlaceholder\"\n data-qa=\"dt-recipe-editor-link-input\"\n input-wrapper-class=\"d-recipe-editor-link__input-wrapper\"\n @click=\"onInputFocus\"\n @focus=\"onInputFocus\"\n @click.native.stop=\"onInputFocus\"\n @keydown.enter=\"setLink\"\n />\n </div>\n </template>\n <template #footerContent>\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n class=\"d-recipe-editor__popover-footer\"\n >\n <dt-button\n data-qa=\"dt-recipe-editor-remove-link-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"removeLinkButtonLabels\"\n @click=\"removeLink\"\n >\n {{ removeLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-cancel-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"sm\"\n v-bind=\"cancelSetLinkButtonLabels\"\n @click=\"closeLinkInput\"\n >\n {{ cancelSetLinkButtonLabels.title }}\n </dt-button>\n <dt-button\n data-qa=\"dt-recipe-editor-set-link-confirm-btn\"\n size=\"sm\"\n v-bind=\"confirmSetLinkButtonLabels\"\n @click=\"setLink\"\n >\n {{ confirmSetLinkButtonLabels.title }}\n </dt-button>\n </dt-stack>\n </template>\n </dt-popover>\n </dt-stack>\n </dt-stack>\n\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n :style=\"{ 'max-height': maxHeight }\"\n class=\"d-recipe-editor__content\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-font-color=\"true\"\n :allow-font-family=\"true\"\n :allow-inline-images=\"true\"\n :allow-line-breaks=\"true\"\n :hide-link-bubble-menu=\"true\"\n :auto-focus=\"autoFocus\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"`d-recipe-editor__content-input ${inputClass}`\"\n :link=\"true\"\n :output-format=\"htmlOutputFormat\"\n :placeholder=\"placeholder\"\n :use-div-tags=\"useDivTags\"\n data-qa=\"dt-rich-text-editor\"\n v-bind=\"$attrs\"\n @text-input=\"onTextInput\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput($event)\"\n />\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from './editor_constants.js';\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtStack } from '@/components/stack';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport {\n DtIconAlignCenter,\n DtIconAlignJustify,\n DtIconAlignLeft,\n DtIconAlignRight,\n DtIconBold,\n DtIconCodeBlock,\n DtIconImage,\n DtIconItalic,\n DtIconQuickReply,\n DtIconLink2,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconQuote,\n DtIconStrikethrough,\n DtIconUnderline,\n} from '@dialpad/dialtone-icons/vue2';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n name: 'DtRecipeEditor',\n\n components: {\n DtRichTextEditor,\n DtButton,\n DtPopover,\n DtStack,\n DtInput,\n DtTooltip,\n DtIconQuickReply,\n DtIconBold,\n DtIconItalic,\n DtIconUnderline,\n DtIconStrikethrough,\n DtIconListBullet,\n DtIconListOrdered,\n DtIconAlignLeft,\n DtIconAlignCenter,\n DtIconAlignRight,\n DtIconAlignJustify,\n DtIconQuote,\n DtIconCodeBlock,\n DtIconLink2,\n DtIconImage,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n value: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n /**\n * Placeholder text for the set link input field\n */\n setLinkPlaceholder: {\n type: String,\n default: '',\n },\n\n /**\n * Show button to render text as bold\n */\n showBoldButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render text in italics\n */\n showItalicsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to underline text\n */\n showUnderlineButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to strike text\n */\n showStrikeButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render list items\n */\n showListItemsButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to render ordered list items\n */\n showOrderedListButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the left\n */\n showAlignLeftButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the center\n */\n showAlignCenterButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to align text to the right\n */\n showAlignRightButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to justify text\n */\n showAlignJustifyButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add quote format to text\n */\n showQuoteButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add code block\n */\n showCodeBlockButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to handle quick replies\n */\n showQuickRepliesButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show button to add an inline image\n */\n showInlineImageButton: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Show add link default config.\n */\n showAddLink: {\n type: Object,\n default: () => ({\n showAddLinkButton: true,\n }),\n },\n\n /**\n * Use div tags instead of paragraph tags to show text\n */\n useDivTags: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native focus event\n * @event input\n * @type {String|JSON}\n */\n 'focus',\n\n /**\n * Native blur event\n * @event input\n * @type {String|JSON}\n */\n 'blur',\n\n /**\n * Native input event\n * @event input\n * @type {String|JSON}\n */\n 'input',\n\n /**\n * Quick replies button\n * pressed event\n * @event quick-replies-click\n */\n 'quick-replies-click',\n\n /**\n * Emit when inline image button is clicked\n * @event inline-image-click\n */\n 'inline-image-click',\n\n /**\n * Emit when text content changes (not raw html)\n */\n 'text-input',\n ],\n\n data () {\n return {\n internalInputValue: this.value, // internal input content\n hasFocus: false,\n\n linkOptions: {\n class: 'd-recipe-editor__link',\n },\n\n showLinkInput: false,\n linkInput: '',\n currentButtonRefIndex: 0,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n inputLength () {\n return this.internalInputValue.length;\n },\n\n htmlOutputFormat () {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS[2];\n },\n\n showingTextFormatButtons () {\n return this.showBoldButton || this.showItalicsButton || this.showStrikeButton || this.showUnderlineButton;\n },\n\n showingAlignmentButtons () {\n return this.showAlignLeftButton || this.showAlignCenterButton ||\n this.showAlignRightButton || this.showAlignJustifyButton;\n },\n\n showingListButtons () {\n return this.showListItemsButton || this.showOrderedListButton;\n },\n\n orderedRefs () {\n const refs = this.buttonGroups.reduce(function (acc, buttonData) {\n buttonData.buttonGroup.forEach(button => {\n acc.push(this.getButtonRef(buttonData.key, button.selector));\n }, this);\n return acc;\n }.bind(this), []);\n refs.push(this.getButtonRef('custom', 'link'));\n return refs;\n },\n\n buttonGroups () {\n const individualButtonStacks = this.individualButtons.map(buttonData => ({\n key: buttonData.selector,\n buttonGroup: [buttonData],\n }));\n return [\n { key: 'new', buttonGroup: this.newButtons },\n { key: 'format', buttonGroup: this.textFormatButtons },\n { key: 'alignment', buttonGroup: this.alignmentButtons },\n { key: 'list', buttonGroup: this.listButtons },\n ...individualButtonStacks,\n ].filter(buttonGroupData => buttonGroupData.buttonGroup.length > 0);\n },\n\n newButtons () {\n return [\n {\n showBtn: this.showQuickRepliesButton,\n label: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n selector: 'quickReplies',\n icon: DtIconQuickReply,\n dataQA: 'dt-recipe-editor-quick-replies-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUICK_REPLY_BUTTON_LABEL'),\n onClick: this.onQuickRepliesClick,\n },\n ].filter(button => button.showBtn);\n },\n\n textFormatButtons () {\n return [\n {\n showBtn: this.showBoldButton,\n selector: 'bold',\n icon: DtIconBold,\n dataQA: 'dt-recipe-editor-bold-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BOLD_BUTTON_LABEL'),\n onClick: this.onBoldTextToggle,\n },\n {\n showBtn: this.showItalicsButton,\n selector: 'italic',\n icon: DtIconItalic,\n dataQA: 'dt-recipe-editor-italics-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ITALICS_BUTTON_LABEL'),\n onClick: this.onItalicTextToggle,\n },\n {\n showBtn: this.showUnderlineButton,\n selector: 'underline',\n icon: DtIconUnderline,\n dataQA: 'dt-recipe-editor-underline-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_UNDERLINE_BUTTON_LABEL'),\n onClick: this.onUnderlineTextToggle,\n },\n {\n showBtn: this.showStrikeButton,\n selector: 'strike',\n icon: DtIconStrikethrough,\n dataQA: 'dt-recipe-editor-strike-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_STRIKE_BUTTON_LABEL'),\n onClick: this.onStrikethroughTextToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n alignmentButtons () {\n return [\n {\n showBtn: this.showAlignLeftButton,\n selector: { textAlign: 'left' },\n icon: DtIconAlignLeft,\n dataQA: 'dt-recipe-editor-align-left-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_LEFT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('left'),\n },\n {\n showBtn: this.showAlignCenterButton,\n selector: { textAlign: 'center' },\n icon: DtIconAlignCenter,\n dataQA: 'dt-recipe-editor-align-center-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_CENTER_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('center'),\n },\n {\n showBtn: this.showAlignRightButton,\n selector: { textAlign: 'right' },\n icon: DtIconAlignRight,\n dataQA: 'dt-recipe-editor-align-right-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_RIGHT_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('right'),\n },\n {\n showBtn: this.showAlignJustifyButton,\n selector: { textAlign: 'justify' },\n icon: DtIconAlignJustify,\n dataQA: 'dt-recipe-editor-align-justify-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ALIGN_JUSTIFY_BUTTON_LABEL'),\n onClick: () => this.onTextAlign('justify'),\n },\n ].filter(button => button.showBtn);\n },\n\n listButtons () {\n return [\n {\n showBtn: this.showListItemsButton,\n selector: 'bulletList',\n icon: DtIconListBullet,\n dataQA: 'dt-recipe-editor-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_BULLET_LIST_BUTTON_LABEL'),\n onClick: this.onBulletListToggle,\n },\n {\n showBtn: this.showOrderedListButton,\n selector: 'orderedList',\n icon: DtIconListOrdered,\n dataQA: 'dt-recipe-editor-ordered-list-items-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_ORDERED_LIST_BUTTON_LABEL'),\n onClick: this.onOrderedListToggle,\n },\n ].filter(button => button.showBtn);\n },\n\n individualButtons () {\n return [\n {\n showBtn: this.showQuoteButton,\n selector: 'blockquote',\n icon: DtIconQuote,\n dataQA: 'dt-recipe-editor-blockquote-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_QUOTE_BUTTON_LABEL'),\n onClick: this.onBlockquoteToggle,\n },\n {\n showBtn: this.showCodeBlockButton,\n selector: 'codeBlock',\n icon: DtIconCodeBlock,\n dataQA: 'dt-recipe-editor-code-block-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_CODE_BUTTON_LABEL'),\n onClick: this.onCodeBlockToggle,\n },\n {\n showBtn: this.showInlineImageButton,\n selector: 'image',\n icon: DtIconImage,\n dataQA: 'dt-recipe-editor-inline-image-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_IMAGE_BUTTON_LABEL'),\n onClick: this.onInsertInlineImageClick,\n },\n ].filter(button => button.showBtn);\n },\n\n linkButton () {\n return {\n showBtn: this.showAddLink.showAddLinkButton,\n selector: 'link',\n icon: DtIconLink2,\n dataQA: 'dt-recipe-editor-add-link-btn',\n tooltipMessage: this.i18n.$t('DIALTONE_EDITOR_LINK_BUTTON_LABEL'),\n onClick: this.openLinkInput,\n };\n },\n\n confirmSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CONFIRM_SET_LINK_BUTTON');\n },\n\n cancelSetLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_CANCEL_SET_LINK_BUTTON');\n },\n\n removeLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_REMOVE_LINK_BUTTON');\n },\n\n showAddLinkButtonLabels () {\n return this.i18n.$ta('DIALTONE_EDITOR_ADD_LINK_BUTTON');\n },\n },\n\n watch: {\n value (newValue) {\n this.internalInputValue = newValue;\n },\n },\n\n methods: {\n onInputFocus (event) {\n event?.stopPropagation();\n },\n\n removeLink () {\n this.$refs.richTextEditor?.editor?.chain()?.focus()?.unsetLink()?.run();\n this.closeLinkInput();\n },\n\n setLink (event) {\n const editor = this.$refs.richTextEditor?.editor;\n event?.preventDefault();\n event?.stopPropagation();\n\n if (!this.linkInput) {\n // If link text is set to empty string,\n // remove any existing links.\n this.removeLink();\n return;\n }\n\n // Check if input matches any of the supported link formats\n const prefix = EDITOR_SUPPORTED_LINK_PROTOCOLS.find(prefixRegex => prefixRegex.test(this.linkInput));\n\n if (!prefix) {\n // If no matching pattern is found, prepend default prefix\n this.linkInput = `${EDITOR_DEFAULT_LINK_PREFIX}${this.linkInput}`;\n }\n\n const selection = editor?.view?.state?.selection;\n\n if (selection.anchor === selection.head) {\n // If no text has been selected, manually insert the link text.\n // Do not rely on link options set through DtRichTextEditor\n // component, because they clash with these and cause issues.\n editor\n .chain()\n .focus()\n .insertContentAt(\n selection.anchor,\n `<a class=\"${this.linkOptions.class}\" href=${this.linkInput}>${this.linkInput}</a>`,\n )\n .run();\n } else {\n // Set or edit the link\n editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: this.linkInput, class: this.linkOptions.class })\n .run();\n }\n\n this.closeLinkInput();\n },\n\n openLinkInput () {\n this.showLinkInput = true;\n },\n\n updateInput (openedInput) {\n if (!openedInput) {\n return this.closeLinkInput();\n }\n this.linkInput = this.$refs.richTextEditor?.editor?.getAttributes('link')?.href;\n },\n\n closeLinkInput () {\n this.showLinkInput = false;\n this.linkInput = '';\n this.$refs.richTextEditor.editor?.chain().focus();\n },\n\n onBoldTextToggle () {\n this.$refs.richTextEditor?.editor?.chain().focus().toggleBold().run();\n },\n\n onItalicTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleItalic().run();\n },\n\n onUnderlineTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleUnderline().run();\n },\n\n onStrikethroughTextToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleStrike().run();\n },\n\n onTextAlign (alignment) {\n if (this.$refs.richTextEditor?.editor?.isActive({ textAlign: alignment })) {\n // If this alignment type is already set here, unset it\n return this.$refs.richTextEditor?.editor.chain().focus().unsetTextAlign().run();\n }\n this.$refs.richTextEditor?.editor.chain().focus().setTextAlign(alignment).run();\n },\n\n onBulletListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBulletList().run();\n },\n\n onOrderedListToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleOrderedList().run();\n },\n\n onCodeBlockToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleCodeBlock().run();\n },\n\n onQuickRepliesClick () {\n this.$emit('quick-replies-click');\n },\n\n onInsertInlineImageClick () {\n this.$emit('inline-image-click');\n },\n\n insertInlineImage (imageUrl) {\n this.$refs.richTextEditor?.editor.chain().focus().setImage({ src: imageUrl }).run();\n },\n\n onBlockquoteToggle () {\n this.$refs.richTextEditor?.editor.chain().focus().toggleBlockquote().run();\n },\n\n insertInMessageBody (messageContent) {\n this.$refs.richTextEditor?.editor.chain().focus().insertContent(messageContent).run();\n },\n\n setCursorPosition (position = null) {\n this.$refs.richTextEditor?.editor.chain().focus(position).run();\n },\n\n onTextInput (event) {\n this.$emit('text-input', event);\n },\n\n onFocus (event) {\n this.hasFocus = true;\n this.$emit('focus', event);\n },\n\n onBlur (event) {\n this.hasFocus = false;\n this.$emit('blur', event);\n },\n\n onInput (event) {\n this.$emit('input', event);\n },\n\n getButtonKey (key, selector) {\n return `${key}-${JSON.stringify(selector)}`;\n },\n\n // Unique Button Ref Key to identify ref\n getButtonRef (key, selector) {\n return `${this.getButtonKey(key, selector)}-ref`;\n },\n\n /**\n * Determines if an element in the action bar button list is focusable with tab key\n * @param {string} refKey - unique identifier for the ref element in DOM\n */\n canFocus (refKey) {\n return refKey === this.orderedRefs[this.currentButtonRefIndex];\n },\n\n shiftActionBarFocusRight () {\n this.shiftButtonRefIndex(1);\n },\n\n shiftActionBarFocusLeft () {\n this.shiftButtonRefIndex(-1);\n },\n\n shiftButtonRefIndex (shiftAmount) {\n const previousRef = this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n const previousActionBarBtn = Array.isArray(previousRef) ? previousRef[0] : previousRef;\n const index = (this.currentButtonRefIndex + shiftAmount) % this.orderedRefs.length;\n this.currentButtonRefIndex = index >= 0 ? index : this.orderedRefs.length + index;\n const currentRef = this.$refs[this.orderedRefs[this.currentButtonRefIndex]];\n const currentActionBarBtn = Array.isArray(currentRef) ? currentRef[0] : currentRef;\n previousActionBarBtn.$el.blur();\n currentActionBarBtn.$el.focus();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtRichTextEditor","DtButton","DtPopover","DtStack","DtInput","DtTooltip","DtIconQuickReply","DtIconBold","DtIconItalic","DtIconUnderline","DtIconStrikethrough","DtIconListBullet","DtIconListOrdered","DtIconAlignLeft","DtIconAlignCenter","DtIconAlignRight","DtIconAlignJustify","DtIconQuote","DtIconCodeBlock","DtIconLink2","DtIconImage","autoFocus","RICH_TEXT_EDITOR_AUTOFOCUS_TYPES","DialtoneLocalization","RICH_TEXT_EDITOR_OUTPUT_FORMATS","refs","acc","buttonData","button","individualButtonStacks","buttonGroupData","newValue","event","_e","_d","_c","_b","_a","editor","EDITOR_SUPPORTED_LINK_PROTOCOLS","prefixRegex","EDITOR_DEFAULT_LINK_PREFIX","selection","openedInput","alignment","imageUrl","messageContent","position","key","selector","refKey","shiftAmount","previousRef","previousActionBarBtn","index","currentRef","currentActionBarBtn"],"mappings":"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"}