@dialpad/dialtone-vue 3.219.0 → 3.220.0-next.2

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 (970) hide show
  1. package/dist/{attachment_carousel-CouFqFMw.js → attachment_carousel-1qxTI-NN.js} +5 -5
  2. package/dist/attachment_carousel-1qxTI-NN.js.map +1 -0
  3. package/dist/attachment_carousel-wnZS3vEt.cjs +2 -0
  4. package/dist/attachment_carousel-wnZS3vEt.cjs.map +1 -0
  5. package/dist/{combobox-DgClbLOg.js → combobox-BQBKrDTW.js} +36 -35
  6. package/dist/combobox-BQBKrDTW.js.map +1 -0
  7. package/dist/combobox-Da7wBh3G.cjs +3 -0
  8. package/dist/combobox-Da7wBh3G.cjs.map +1 -0
  9. package/dist/common/composables/useIndicatorAnimation.cjs +2 -0
  10. package/dist/common/composables/useIndicatorAnimation.cjs.map +1 -0
  11. package/dist/common/composables/useIndicatorAnimation.d.ts +18 -0
  12. package/dist/common/composables/useIndicatorAnimation.d.ts.map +1 -0
  13. package/dist/common/composables/useIndicatorAnimation.js +78 -0
  14. package/dist/common/composables/useIndicatorAnimation.js.map +1 -0
  15. package/dist/common/constants/index.cjs +1 -1
  16. package/dist/common/constants/index.cjs.map +1 -1
  17. package/dist/common/constants/index.d.ts +27 -21
  18. package/dist/common/constants/index.d.ts.map +1 -1
  19. package/dist/common/constants/index.js +25 -14
  20. package/dist/common/constants/index.js.map +1 -1
  21. package/dist/common/constants/sizes.cjs +2 -0
  22. package/dist/common/constants/sizes.cjs.map +1 -0
  23. package/dist/common/constants/sizes.d.ts +22 -0
  24. package/dist/common/constants/sizes.d.ts.map +1 -0
  25. package/dist/common/constants/sizes.js +19 -0
  26. package/dist/common/constants/sizes.js.map +1 -0
  27. package/dist/common/mixins/index.cjs +1 -1
  28. package/dist/common/mixins/index.d.ts +1 -0
  29. package/dist/common/mixins/index.js +2 -1
  30. package/dist/common/mixins/input.cjs +1 -1
  31. package/dist/common/mixins/input.cjs.map +1 -1
  32. package/dist/common/mixins/input.d.ts +27 -33
  33. package/dist/common/mixins/input.d.ts.map +1 -1
  34. package/dist/common/mixins/input.js +0 -8
  35. package/dist/common/mixins/input.js.map +1 -1
  36. package/dist/common/mixins/mode.cjs +2 -0
  37. package/dist/common/mixins/mode.cjs.map +1 -0
  38. package/dist/common/mixins/mode.d.ts +25 -0
  39. package/dist/common/mixins/mode.d.ts.map +1 -0
  40. package/dist/common/mixins/mode.js +62 -0
  41. package/dist/common/mixins/mode.js.map +1 -0
  42. package/dist/common/mode_constants.d.ts +37 -0
  43. package/dist/common/mode_constants.d.ts.map +1 -0
  44. package/dist/common/sr_only_close_button.vue.d.ts +53 -7
  45. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  46. package/dist/common/utils/index.cjs +1 -1
  47. package/dist/common/utils/index.cjs.map +1 -1
  48. package/dist/common/utils/index.d.ts +2 -8
  49. package/dist/common/utils/index.d.ts.map +1 -1
  50. package/dist/common/utils/index.js +79 -88
  51. package/dist/common/utils/index.js.map +1 -1
  52. package/dist/component-documentation.json +1 -1
  53. package/dist/components/avatar/avatar.vue.d.ts +85 -27
  54. package/dist/components/avatar/avatar.vue.d.ts.map +1 -1
  55. package/dist/components/avatar/avatar_constants.d.ts +86 -29
  56. package/dist/components/avatar/avatar_constants.d.ts.map +1 -1
  57. package/dist/components/avatar/index.d.ts +1 -1
  58. package/dist/components/badge/badge.vue.d.ts +1 -1
  59. package/dist/components/badge/badge.vue.d.ts.map +1 -1
  60. package/dist/components/badge/badge_constants.d.ts +1 -1
  61. package/dist/components/banner/banner.vue.d.ts +269 -34
  62. package/dist/components/banner/banner.vue.d.ts.map +1 -1
  63. package/dist/components/box/box.vue.d.ts +73 -0
  64. package/dist/components/box/box.vue.d.ts.map +1 -0
  65. package/dist/components/box/box_constants.d.ts +11 -0
  66. package/dist/components/box/box_constants.d.ts.map +1 -0
  67. package/dist/components/box/index.d.ts +3 -0
  68. package/dist/components/box/index.d.ts.map +1 -0
  69. package/dist/components/box/validators.d.ts +11 -0
  70. package/dist/components/box/validators.d.ts.map +1 -0
  71. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts +26 -17
  72. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  73. package/dist/components/breadcrumbs/breadcrumbs.vue.d.ts +25 -16
  74. package/dist/components/button/button.vue.d.ts +53 -7
  75. package/dist/components/button/button.vue.d.ts.map +1 -1
  76. package/dist/components/button/button_constants.d.ts +29 -20
  77. package/dist/components/button/button_constants.d.ts.map +1 -1
  78. package/dist/components/card/card.vue.d.ts +0 -9
  79. package/dist/components/card/card.vue.d.ts.map +1 -1
  80. package/dist/components/checkbox/checkbox.vue.d.ts +183 -10
  81. package/dist/components/checkbox/checkbox.vue.d.ts.map +1 -1
  82. package/dist/components/checkbox/checkbox_constants.d.ts +2 -2
  83. package/dist/components/checkbox_group/checkbox_group.vue.d.ts +142 -0
  84. package/dist/components/chip/chip.vue.d.ts +62 -16
  85. package/dist/components/chip/chip.vue.d.ts.map +1 -1
  86. package/dist/components/chip/chip_constants.d.ts +24 -21
  87. package/dist/components/chip/chip_constants.d.ts.map +1 -1
  88. package/dist/components/codeblock/codeblock.vue.d.ts +25 -2
  89. package/dist/components/codeblock/codeblock.vue.d.ts.map +1 -1
  90. package/dist/components/codeblock/codeblock_constants.d.ts +9 -0
  91. package/dist/components/codeblock/codeblock_constants.d.ts.map +1 -0
  92. package/dist/components/collapsible/collapsible.vue.d.ts +53 -7
  93. package/dist/components/collapsible/collapsible.vue.d.ts.map +1 -1
  94. package/dist/components/combobox/combobox.vue.d.ts +113 -38
  95. package/dist/components/combobox/combobox.vue.d.ts.map +1 -1
  96. package/dist/components/combobox/combobox_empty-list.vue.d.ts +40 -7
  97. package/dist/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  98. package/dist/components/combobox/combobox_loading-list.vue.d.ts +64 -22
  99. package/dist/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  100. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts +16 -13
  101. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
  102. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts +399 -93
  103. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  104. package/dist/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  105. package/dist/components/dropdown/dropdown.vue.d.ts +175 -19
  106. package/dist/components/dropdown/dropdown.vue.d.ts.map +1 -1
  107. package/dist/components/emoji/emoji.vue.d.ts +24 -15
  108. package/dist/components/emoji_picker/emoji_picker.vue.d.ts +204 -22
  109. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts +204 -22
  110. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  111. package/dist/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  112. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +24 -15
  113. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  114. package/dist/components/empty_state/empty_state.vue.d.ts.map +1 -1
  115. package/dist/components/empty_state/empty_state_constants.d.ts +52 -31
  116. package/dist/components/empty_state/empty_state_constants.d.ts.map +1 -1
  117. package/dist/components/filter_pill/filter_pill.vue.d.ts +4491 -0
  118. package/dist/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  119. package/dist/components/filter_pill/index.d.ts +2 -0
  120. package/dist/components/filter_pill/index.d.ts.map +1 -0
  121. package/dist/components/hovercard/hovercard.vue.d.ts +380 -41
  122. package/dist/components/hovercard/hovercard.vue.d.ts.map +1 -1
  123. package/dist/components/image_viewer/image_viewer.vue.d.ts +131 -14
  124. package/dist/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  125. package/dist/components/input/input.vue.d.ts +195 -19
  126. package/dist/components/input/input.vue.d.ts.map +1 -1
  127. package/dist/components/input/input_constants.d.ts +46 -48
  128. package/dist/components/input/input_constants.d.ts.map +1 -1
  129. package/dist/components/input_group/input_group.vue.d.ts +142 -0
  130. package/dist/components/input_group/input_group.vue.d.ts.map +1 -1
  131. package/dist/components/item_layout/item_layout.vue.d.ts +37 -6
  132. package/dist/components/item_layout/item_layout.vue.d.ts.map +1 -1
  133. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +142 -0
  134. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  135. package/dist/components/link/index.d.ts +1 -1
  136. package/dist/components/link/link.vue.d.ts +25 -6
  137. package/dist/components/link/link_constants.d.ts +4 -4
  138. package/dist/components/link/link_constants.d.ts.map +1 -1
  139. package/dist/components/list_item/list_item.vue.d.ts +40 -7
  140. package/dist/components/list_item/list_item.vue.d.ts.map +1 -1
  141. package/dist/components/modal/modal.vue.d.ts +292 -97
  142. package/dist/components/modal/modal.vue.d.ts.map +1 -1
  143. package/dist/components/modal/modal_constants.d.ts +7 -6
  144. package/dist/components/mode_island/index.d.ts +3 -0
  145. package/dist/components/mode_island/index.d.ts.map +1 -0
  146. package/dist/components/mode_island/mode_island.vue.d.ts +3 -0
  147. package/dist/components/mode_island/mode_island.vue.d.ts.map +1 -0
  148. package/dist/components/mode_island/mode_island_constants.d.ts +10 -0
  149. package/dist/components/mode_island/mode_island_constants.d.ts.map +1 -0
  150. package/dist/components/mode_island/utils.d.ts +12 -0
  151. package/dist/components/mode_island/utils.d.ts.map +1 -0
  152. package/dist/components/mode_island/validators.d.ts +6 -0
  153. package/dist/components/mode_island/validators.d.ts.map +1 -0
  154. package/dist/components/motion_text/motion_text_constants.d.ts +27 -23
  155. package/dist/components/motion_text/motion_text_constants.d.ts.map +1 -1
  156. package/dist/components/notice/notice.vue.d.ts +269 -34
  157. package/dist/components/notice/notice.vue.d.ts.map +1 -1
  158. package/dist/components/notice/notice_action.vue.d.ts +112 -20
  159. package/dist/components/notice/notice_action.vue.d.ts.map +1 -1
  160. package/dist/components/notice/notice_constants.d.ts.map +1 -1
  161. package/dist/components/notice/notice_content.vue.d.ts +144 -1
  162. package/dist/components/notice/notice_content.vue.d.ts.map +1 -1
  163. package/dist/components/notice/notice_icon.vue.d.ts +2 -2
  164. package/dist/components/notice/notice_icon.vue.d.ts.map +1 -1
  165. package/dist/components/pagination/pagination.vue.d.ts +56 -10
  166. package/dist/components/pagination/pagination.vue.d.ts.map +1 -1
  167. package/dist/components/popover/popover.vue.d.ts +163 -18
  168. package/dist/components/popover/popover.vue.d.ts.map +1 -1
  169. package/dist/components/popover/popover_header_footer.vue.d.ts +62 -7
  170. package/dist/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  171. package/dist/components/radio/radio.vue.d.ts +178 -6
  172. package/dist/components/radio/radio.vue.d.ts.map +1 -1
  173. package/dist/components/radio/radio_constants.d.ts +2 -2
  174. package/dist/components/radio_group/radio_group.vue.d.ts +142 -0
  175. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +25 -6
  176. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  177. package/dist/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  178. package/dist/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +24 -15
  179. package/dist/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +24 -15
  180. package/dist/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +25 -6
  181. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +227 -27
  182. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  183. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +144 -1
  184. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  185. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +40 -7
  186. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  187. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +411 -44
  188. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  189. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts +59 -13
  190. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  191. package/dist/components/root_layout/root_layout_constants.d.ts +2 -0
  192. package/dist/components/root_layout/root_layout_constants.d.ts.map +1 -1
  193. package/dist/components/scroller/modules/core_scroller.vue.d.ts +2 -2
  194. package/dist/components/scroller/modules/dynamic_scroller.vue.d.ts +12 -12
  195. package/dist/components/scroller/scroller.vue.d.ts +18 -18
  196. package/dist/components/segmented_control/index.d.ts +4 -0
  197. package/dist/components/segmented_control/index.d.ts.map +1 -0
  198. package/dist/components/segmented_control/segmented_control.vue.d.ts +226 -0
  199. package/dist/components/segmented_control/segmented_control.vue.d.ts.map +1 -0
  200. package/dist/components/segmented_control/segmented_control_constants.d.ts +41 -0
  201. package/dist/components/segmented_control/segmented_control_constants.d.ts.map +1 -0
  202. package/dist/components/segmented_control/segmented_control_item.vue.d.ts +35 -0
  203. package/dist/components/segmented_control/segmented_control_item.vue.d.ts.map +1 -0
  204. package/dist/components/select_menu/select_menu.vue.d.ts +189 -31
  205. package/dist/components/select_menu/select_menu.vue.d.ts.map +1 -1
  206. package/dist/components/select_menu/select_menu_constants.d.ts +14 -9
  207. package/dist/components/select_menu/select_menu_constants.d.ts.map +1 -1
  208. package/dist/components/skeleton/skeleton-list-item.vue.d.ts +13 -10
  209. package/dist/components/skeleton/skeleton-paragraph.vue.d.ts +3 -0
  210. package/dist/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  211. package/dist/components/skeleton/skeleton-text.vue.d.ts +3 -0
  212. package/dist/components/skeleton/skeleton.vue.d.ts +24 -15
  213. package/dist/components/skeleton/skeleton_constants.d.ts +18 -13
  214. package/dist/components/skeleton/skeleton_constants.d.ts.map +1 -1
  215. package/dist/components/split_button/{split_button-omega.vue.d.ts → split_button-end.vue.d.ts} +64 -13
  216. package/dist/components/split_button/{split_button-omega.vue.d.ts.map → split_button-end.vue.d.ts.map} +1 -1
  217. package/dist/components/split_button/{split_button-alpha.vue.d.ts → split_button-start.vue.d.ts} +125 -11
  218. package/dist/components/split_button/split_button-start.vue.d.ts.map +1 -0
  219. package/dist/components/split_button/split_button.vue.d.ts +602 -78
  220. package/dist/components/split_button/split_button.vue.d.ts.map +1 -1
  221. package/dist/components/split_button/split_button_constants.d.ts +12 -7
  222. package/dist/components/split_button/split_button_constants.d.ts.map +1 -1
  223. package/dist/components/stack/stack_constants.d.ts.map +1 -1
  224. package/dist/components/tab/index.d.ts +1 -1
  225. package/dist/components/tab/tab.vue.d.ts +86 -11
  226. package/dist/components/tab/tab.vue.d.ts.map +1 -1
  227. package/dist/components/tab/tab_group.vue.d.ts +125 -10
  228. package/dist/components/tab/tab_group.vue.d.ts.map +1 -1
  229. package/dist/components/tab/tabs_constants.d.ts +23 -5
  230. package/dist/components/tab/tabs_constants.d.ts.map +1 -1
  231. package/dist/components/text/index.d.ts +3 -0
  232. package/dist/components/text/index.d.ts.map +1 -0
  233. package/dist/components/text/text.vue.d.ts +145 -0
  234. package/dist/components/text/text.vue.d.ts.map +1 -0
  235. package/dist/components/text/text_constants.d.ts +93 -0
  236. package/dist/components/text/text_constants.d.ts.map +1 -0
  237. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts +264 -29
  238. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  239. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts +2 -2
  240. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  241. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts +267 -32
  242. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  243. package/dist/components/toast/toast.vue.d.ts +1125 -185
  244. package/dist/components/toast/toast.vue.d.ts.map +1 -1
  245. package/dist/components/toggle/toggle.vue.d.ts +19 -19
  246. package/dist/components/toggle/toggle.vue.d.ts.map +1 -1
  247. package/dist/components/toggle/toggle_constants.d.ts +6 -4
  248. package/dist/components/toggle/toggle_constants.d.ts.map +1 -1
  249. package/dist/components/tooltip/tooltip.vue.d.ts +31 -5
  250. package/dist/components/tooltip/tooltip.vue.d.ts.map +1 -1
  251. package/dist/{datepicker-LVDRC6Lf.js → datepicker-B2nhxiCg.js} +20 -24
  252. package/dist/datepicker-B2nhxiCg.js.map +1 -0
  253. package/dist/datepicker-CZrNL0Yn.cjs +2 -0
  254. package/dist/datepicker-CZrNL0Yn.cjs.map +1 -0
  255. package/dist/dialtone-vue.cjs +1 -1
  256. package/dist/dialtone-vue.css +1 -1
  257. package/dist/dialtone-vue.js +170 -150
  258. package/dist/directives/focusgroup_directive/focusgroup.d.ts +6 -0
  259. package/dist/directives/focusgroup_directive/focusgroup.d.ts.map +1 -0
  260. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts +74 -0
  261. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts.map +1 -0
  262. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts +15 -0
  263. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts.map +1 -0
  264. package/dist/directives/focusgroup_directive/index.d.ts +2 -0
  265. package/dist/directives/focusgroup_directive/index.d.ts.map +1 -0
  266. package/dist/directives/focustrap_directive/focustrap.d.ts +6 -0
  267. package/dist/directives/focustrap_directive/focustrap.d.ts.map +1 -0
  268. package/dist/directives/focustrap_directive/focustrap_constants.d.ts +7 -0
  269. package/dist/directives/focustrap_directive/focustrap_constants.d.ts.map +1 -0
  270. package/dist/directives/focustrap_directive/focustrap_utils.d.ts +5 -0
  271. package/dist/directives/focustrap_directive/focustrap_utils.d.ts.map +1 -0
  272. package/dist/directives/focustrap_directive/index.d.ts +2 -0
  273. package/dist/directives/focustrap_directive/index.d.ts.map +1 -0
  274. package/dist/directives/mode_directive/index.d.ts +2 -0
  275. package/dist/directives/mode_directive/index.d.ts.map +1 -0
  276. package/dist/directives/mode_directive/mode.d.ts +6 -0
  277. package/dist/directives/mode_directive/mode.d.ts.map +1 -0
  278. package/dist/directives/tooltip_directive/tooltip.d.ts.map +1 -1
  279. package/dist/emoji_picker-BQW4qRFg.cjs +2 -0
  280. package/dist/emoji_picker-BQW4qRFg.cjs.map +1 -0
  281. package/dist/{emoji_picker-tVHfpHDk.js → emoji_picker-BjgAohQy.js} +9 -8
  282. package/dist/emoji_picker-BjgAohQy.js.map +1 -0
  283. package/dist/index.d.ts +8 -0
  284. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  285. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  286. package/dist/lib/attachment-carousel/index.cjs +1 -1
  287. package/dist/lib/attachment-carousel/index.js +1 -1
  288. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  289. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  290. package/dist/lib/avatar/avatar-constants.js +111 -24
  291. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  292. package/dist/lib/avatar/avatar.cjs +1 -1
  293. package/dist/lib/avatar/avatar.cjs.map +1 -1
  294. package/dist/lib/avatar/avatar.js +145 -84
  295. package/dist/lib/avatar/avatar.js.map +1 -1
  296. package/dist/lib/avatar/index.cjs +1 -1
  297. package/dist/lib/avatar/index.js +3 -3
  298. package/dist/lib/badge/badge-constants.cjs +1 -1
  299. package/dist/lib/badge/badge-constants.cjs.map +1 -1
  300. package/dist/lib/badge/badge-constants.js +1 -1
  301. package/dist/lib/badge/badge-constants.js.map +1 -1
  302. package/dist/lib/badge/badge.cjs +1 -1
  303. package/dist/lib/badge/badge.cjs.map +1 -1
  304. package/dist/lib/badge/badge.js +26 -14
  305. package/dist/lib/badge/badge.js.map +1 -1
  306. package/dist/lib/banner/banner.cjs +2 -2
  307. package/dist/lib/banner/banner.cjs.map +1 -1
  308. package/dist/lib/banner/banner.js +17 -16
  309. package/dist/lib/banner/banner.js.map +1 -1
  310. package/dist/lib/box/box-constants.cjs +2 -0
  311. package/dist/lib/box/box-constants.cjs.map +1 -0
  312. package/dist/lib/box/box-constants.js +103 -0
  313. package/dist/lib/box/box-constants.js.map +1 -0
  314. package/dist/lib/box/box.cjs +2 -0
  315. package/dist/lib/box/box.cjs.map +1 -0
  316. package/dist/lib/box/box.js +229 -0
  317. package/dist/lib/box/box.js.map +1 -0
  318. package/dist/lib/box/index.cjs +1 -0
  319. package/dist/lib/box/index.js +3 -0
  320. package/dist/lib/box/validators.cjs +2 -0
  321. package/dist/lib/box/validators.cjs.map +1 -0
  322. package/dist/lib/box/validators.js +7 -0
  323. package/dist/lib/box/validators.js.map +1 -0
  324. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  325. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  326. package/dist/lib/breadcrumbs/breadcrumb-item.js +29 -38
  327. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  328. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  329. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  330. package/dist/lib/breadcrumbs/breadcrumbs.js +6 -6
  331. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  332. package/dist/lib/button/button-constants.cjs +1 -1
  333. package/dist/lib/button/button-constants.cjs.map +1 -1
  334. package/dist/lib/button/button-constants.js +17 -3
  335. package/dist/lib/button/button-constants.js.map +1 -1
  336. package/dist/lib/button/button.cjs +1 -1
  337. package/dist/lib/button/button.cjs.map +1 -1
  338. package/dist/lib/button/button.js +98 -15
  339. package/dist/lib/button/button.js.map +1 -1
  340. package/dist/lib/button-group/button-group.cjs.map +1 -1
  341. package/dist/lib/button-group/button-group.js.map +1 -1
  342. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  343. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  344. package/dist/lib/callbar-button/callbar-button.js +26 -27
  345. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  346. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  347. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  348. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +45 -36
  349. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  350. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  351. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  352. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +47 -38
  353. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  354. package/dist/lib/callbox/callbox.cjs +1 -1
  355. package/dist/lib/callbox/callbox.cjs.map +1 -1
  356. package/dist/lib/callbox/callbox.js +4 -4
  357. package/dist/lib/callbox/callbox.js.map +1 -1
  358. package/dist/lib/card/card.cjs +1 -1
  359. package/dist/lib/card/card.cjs.map +1 -1
  360. package/dist/lib/card/card.js +10 -18
  361. package/dist/lib/card/card.js.map +1 -1
  362. package/dist/lib/checkbox/checkbox-constants.cjs +1 -1
  363. package/dist/lib/checkbox/checkbox-constants.cjs.map +1 -1
  364. package/dist/lib/checkbox/checkbox-constants.js +2 -2
  365. package/dist/lib/checkbox/checkbox-constants.js.map +1 -1
  366. package/dist/lib/checkbox/checkbox.cjs +1 -1
  367. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  368. package/dist/lib/checkbox/checkbox.js +79 -28
  369. package/dist/lib/checkbox/checkbox.js.map +1 -1
  370. package/dist/lib/checkbox-group/checkboxes-decorator.cjs +1 -1
  371. package/dist/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
  372. package/dist/lib/checkbox-group/checkboxes-decorator.js +0 -1
  373. package/dist/lib/checkbox-group/checkboxes-decorator.js.map +1 -1
  374. package/dist/lib/chip/chip-constants.cjs +1 -1
  375. package/dist/lib/chip/chip-constants.cjs.map +1 -1
  376. package/dist/lib/chip/chip-constants.js +9 -0
  377. package/dist/lib/chip/chip-constants.js.map +1 -1
  378. package/dist/lib/chip/chip.cjs +1 -1
  379. package/dist/lib/chip/chip.cjs.map +1 -1
  380. package/dist/lib/chip/chip.js +13 -13
  381. package/dist/lib/chip/chip.js.map +1 -1
  382. package/dist/lib/codeblock/codeblock-constants.cjs +2 -0
  383. package/dist/lib/codeblock/codeblock-constants.cjs.map +1 -0
  384. package/dist/lib/codeblock/codeblock-constants.js +20 -0
  385. package/dist/lib/codeblock/codeblock-constants.js.map +1 -0
  386. package/dist/lib/codeblock/codeblock.cjs +1 -2
  387. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  388. package/dist/lib/codeblock/codeblock.js +25 -14
  389. package/dist/lib/codeblock/codeblock.js.map +1 -1
  390. package/dist/lib/collapsible/collapsible.cjs +1 -1
  391. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  392. package/dist/lib/collapsible/collapsible.js +1 -1
  393. package/dist/lib/collapsible/collapsible.js.map +1 -1
  394. package/dist/lib/combobox/combobox.cjs +1 -1
  395. package/dist/lib/combobox/combobox.js +1 -1
  396. package/dist/lib/combobox/index.cjs +1 -1
  397. package/dist/lib/combobox/index.js +1 -1
  398. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
  399. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  400. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +6 -0
  401. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  402. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  403. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  404. package/dist/lib/combobox-multi-select/combobox-multi-select.js +34 -33
  405. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  406. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  407. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  408. package/dist/lib/combobox-with-popover/combobox-with-popover.js +51 -46
  409. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  410. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  411. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  412. package/dist/lib/contact-centers-row/contact-centers-row.js +51 -45
  413. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  414. package/dist/lib/contact-info/contact-info.cjs +1 -1
  415. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  416. package/dist/lib/contact-info/contact-info.js +8 -8
  417. package/dist/lib/contact-info/contact-info.js.map +1 -1
  418. package/dist/lib/contact-row/contact-row.cjs +1 -1
  419. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  420. package/dist/lib/contact-row/contact-row.js +3 -3
  421. package/dist/lib/contact-row/contact-row.js.map +1 -1
  422. package/dist/lib/datepicker/datepicker.cjs +1 -1
  423. package/dist/lib/datepicker/datepicker.js +1 -1
  424. package/dist/lib/datepicker/index.cjs +1 -1
  425. package/dist/lib/datepicker/index.js +1 -1
  426. package/dist/lib/description-list/description-list.cjs +1 -1
  427. package/dist/lib/description-list/description-list.cjs.map +1 -1
  428. package/dist/lib/description-list/description-list.js +1 -1
  429. package/dist/lib/description-list/description-list.js.map +1 -1
  430. package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
  431. package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
  432. package/dist/lib/dropdown/dropdown-constants.js +2 -2
  433. package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
  434. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  435. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  436. package/dist/lib/dropdown/dropdown-list.js +28 -16
  437. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  438. package/dist/lib/dropdown/dropdown.cjs +1 -1
  439. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  440. package/dist/lib/dropdown/dropdown.js +30 -26
  441. package/dist/lib/dropdown/dropdown.js.map +1 -1
  442. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  443. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  444. package/dist/lib/editor/EditorToolbarButton.js +1 -1
  445. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  446. package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
  447. package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
  448. package/dist/lib/editor/EditorToolbarDropdownButton.js +1 -1
  449. package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
  450. package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
  451. package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
  452. package/dist/lib/editor/EditorToolbarPopoverButton.js +1 -1
  453. package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
  454. package/dist/lib/editor/editor.cjs +1 -1
  455. package/dist/lib/editor/editor.cjs.map +1 -1
  456. package/dist/lib/editor/editor.js +134 -135
  457. package/dist/lib/editor/editor.js.map +1 -1
  458. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  459. package/dist/lib/emoji-picker/emoji-picker.js +1 -1
  460. package/dist/lib/emoji-picker/index.cjs +1 -1
  461. package/dist/lib/emoji-picker/index.js +1 -1
  462. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  463. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  464. package/dist/lib/emoji-row/emoji-row.js +1 -1
  465. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  466. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  467. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  468. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  469. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  470. package/dist/lib/empty-state/empty-state-constants.js +37 -9
  471. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  472. package/dist/lib/empty-state/empty-state.cjs +1 -1
  473. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  474. package/dist/lib/empty-state/empty-state.js +46 -26
  475. package/dist/lib/empty-state/empty-state.js.map +1 -1
  476. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  477. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  478. package/dist/lib/feed-item-pill/feed-item-pill.js +40 -42
  479. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  480. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  481. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  482. package/dist/lib/feed-item-row/feed-item-row.js +3 -3
  483. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  484. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  485. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  486. package/dist/lib/filter-pill/filter-pill.js +433 -0
  487. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  488. package/dist/lib/filter-pill/index.cjs +1 -0
  489. package/dist/lib/filter-pill/index.js +2 -0
  490. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs +2 -0
  491. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs.map +1 -0
  492. package/dist/lib/focusgroup-directive/focusgroup-constants.js +77 -0
  493. package/dist/lib/focusgroup-directive/focusgroup-constants.js.map +1 -0
  494. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs +2 -0
  495. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs.map +1 -0
  496. package/dist/lib/focusgroup-directive/focusgroup-utils.js +33 -0
  497. package/dist/lib/focusgroup-directive/focusgroup-utils.js.map +1 -0
  498. package/dist/lib/focusgroup-directive/focusgroup.cjs +2 -0
  499. package/dist/lib/focusgroup-directive/focusgroup.cjs.map +1 -0
  500. package/dist/lib/focusgroup-directive/focusgroup.js +143 -0
  501. package/dist/lib/focusgroup-directive/focusgroup.js.map +1 -0
  502. package/dist/lib/focusgroup-directive/index.cjs +1 -0
  503. package/dist/lib/focusgroup-directive/index.js +2 -0
  504. package/dist/lib/focustrap-directive/focustrap-constants.cjs +2 -0
  505. package/dist/lib/focustrap-directive/focustrap-constants.cjs.map +1 -0
  506. package/dist/lib/focustrap-directive/focustrap-constants.js +10 -0
  507. package/dist/lib/focustrap-directive/focustrap-constants.js.map +1 -0
  508. package/dist/lib/focustrap-directive/focustrap-utils.cjs +2 -0
  509. package/dist/lib/focustrap-directive/focustrap-utils.cjs.map +1 -0
  510. package/dist/lib/focustrap-directive/focustrap-utils.js +19 -0
  511. package/dist/lib/focustrap-directive/focustrap-utils.js.map +1 -0
  512. package/dist/lib/focustrap-directive/focustrap.cjs +2 -0
  513. package/dist/lib/focustrap-directive/focustrap.cjs.map +1 -0
  514. package/dist/lib/focustrap-directive/focustrap.js +96 -0
  515. package/dist/lib/focustrap-directive/focustrap.js.map +1 -0
  516. package/dist/lib/focustrap-directive/index.cjs +1 -0
  517. package/dist/lib/focustrap-directive/index.js +2 -0
  518. package/dist/lib/general-row/general-row.cjs +1 -1
  519. package/dist/lib/general-row/general-row.cjs.map +1 -1
  520. package/dist/lib/general-row/general-row.js +105 -61
  521. package/dist/lib/general-row/general-row.js.map +1 -1
  522. package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
  523. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  524. package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
  525. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  526. package/dist/lib/group-row/group-row.cjs +1 -1
  527. package/dist/lib/group-row/group-row.cjs.map +1 -1
  528. package/dist/lib/group-row/group-row.js +2 -2
  529. package/dist/lib/group-row/group-row.js.map +1 -1
  530. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  531. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  532. package/dist/lib/grouped-chip/grouped-chip.js +9 -9
  533. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  534. package/dist/lib/hovercard/hovercard.cjs +1 -1
  535. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  536. package/dist/lib/hovercard/hovercard.js +28 -24
  537. package/dist/lib/hovercard/hovercard.js.map +1 -1
  538. package/dist/lib/icon/icon.cjs +1 -1
  539. package/dist/lib/icon/icon.cjs.map +1 -1
  540. package/dist/lib/icon/icon.js +1 -1
  541. package/dist/lib/icon/icon.js.map +1 -1
  542. package/dist/lib/illustration/illustration.cjs +1 -1
  543. package/dist/lib/illustration/illustration.cjs.map +1 -1
  544. package/dist/lib/illustration/illustration.js +1 -1
  545. package/dist/lib/illustration/illustration.js.map +1 -1
  546. package/dist/lib/image-viewer/image-viewer.cjs +1 -1
  547. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  548. package/dist/lib/image-viewer/image-viewer.js +32 -31
  549. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  550. package/dist/lib/input/input-constants.cjs +1 -1
  551. package/dist/lib/input/input-constants.cjs.map +1 -1
  552. package/dist/lib/input/input-constants.js +25 -11
  553. package/dist/lib/input/input-constants.js.map +1 -1
  554. package/dist/lib/input/input.cjs +1 -1
  555. package/dist/lib/input/input.cjs.map +1 -1
  556. package/dist/lib/input/input.js +161 -79
  557. package/dist/lib/input/input.js.map +1 -1
  558. package/dist/lib/input-group/input-group.cjs +1 -1
  559. package/dist/lib/input-group/input-group.cjs.map +1 -1
  560. package/dist/lib/input-group/input-group.js +25 -15
  561. package/dist/lib/input-group/input-group.js.map +1 -1
  562. package/dist/lib/item-layout/item-layout.cjs +3 -3
  563. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  564. package/dist/lib/item-layout/item-layout.js +35 -12
  565. package/dist/lib/item-layout/item-layout.js.map +1 -1
  566. package/dist/lib/ivr-node/ivr-node.cjs +1 -1
  567. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  568. package/dist/lib/ivr-node/ivr-node.js +1 -1
  569. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  570. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  571. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  572. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +48 -38
  573. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  574. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  575. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  576. package/dist/lib/kitchen-sink/kitchen-sink-view.js +205 -0
  577. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  578. package/dist/lib/link/index.cjs +1 -1
  579. package/dist/lib/link/index.js +2 -2
  580. package/dist/lib/link/link-constants.cjs +1 -1
  581. package/dist/lib/link/link-constants.cjs.map +1 -1
  582. package/dist/lib/link/link-constants.js +7 -7
  583. package/dist/lib/link/link-constants.js.map +1 -1
  584. package/dist/lib/link/link.cjs +1 -1
  585. package/dist/lib/link/link.cjs.map +1 -1
  586. package/dist/lib/link/link.js +17 -2
  587. package/dist/lib/link/link.js.map +1 -1
  588. package/dist/lib/list-item/list-item.cjs +1 -1
  589. package/dist/lib/list-item/list-item.cjs.map +1 -1
  590. package/dist/lib/list-item/list-item.js +9 -5
  591. package/dist/lib/list-item/list-item.js.map +1 -1
  592. package/dist/lib/list-item-group/list-item-group.cjs +1 -1
  593. package/dist/lib/list-item-group/list-item-group.cjs.map +1 -1
  594. package/dist/lib/list-item-group/list-item-group.js +1 -1
  595. package/dist/lib/list-item-group/list-item-group.js.map +1 -1
  596. package/dist/lib/message-input/index.cjs +1 -1
  597. package/dist/lib/message-input/index.js +1 -1
  598. package/dist/lib/message-input/message-input-button.cjs +1 -1
  599. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  600. package/dist/lib/message-input/message-input-button.js +1 -1
  601. package/dist/lib/message-input/message-input-button.js.map +1 -1
  602. package/dist/lib/message-input/message-input-link.cjs +1 -1
  603. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  604. package/dist/lib/message-input/message-input-link.js +9 -9
  605. package/dist/lib/message-input/message-input-link.js.map +1 -1
  606. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  607. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  608. package/dist/lib/message-input/message-input-topbar.js +2 -2
  609. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  610. package/dist/lib/message-input/message-input.cjs +1 -1
  611. package/dist/lib/message-input/message-input.js +1 -1
  612. package/dist/lib/modal/modal-constants.cjs +1 -1
  613. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  614. package/dist/lib/modal/modal-constants.js +3 -3
  615. package/dist/lib/modal/modal-constants.js.map +1 -1
  616. package/dist/lib/modal/modal.cjs +1 -1
  617. package/dist/lib/modal/modal.cjs.map +1 -1
  618. package/dist/lib/modal/modal.js +158 -157
  619. package/dist/lib/modal/modal.js.map +1 -1
  620. package/dist/lib/mode-directive/index.cjs +1 -0
  621. package/dist/lib/mode-directive/index.js +2 -0
  622. package/dist/lib/mode-directive/mode.cjs +2 -0
  623. package/dist/lib/mode-directive/mode.cjs.map +1 -0
  624. package/dist/lib/mode-directive/mode.js +67 -0
  625. package/dist/lib/mode-directive/mode.js.map +1 -0
  626. package/dist/lib/mode-island/index.cjs +1 -0
  627. package/dist/lib/mode-island/index.js +3 -0
  628. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  629. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  630. package/dist/lib/mode-island/mode-island-constants.js +10 -0
  631. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  632. package/dist/lib/mode-island/mode-island.cjs +2 -0
  633. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  634. package/dist/lib/mode-island/mode-island.js +102 -0
  635. package/dist/lib/mode-island/mode-island.js.map +1 -0
  636. package/dist/lib/mode-island/utils.cjs +2 -0
  637. package/dist/lib/mode-island/utils.cjs.map +1 -0
  638. package/dist/lib/mode-island/utils.js +28 -0
  639. package/dist/lib/mode-island/utils.js.map +1 -0
  640. package/dist/lib/mode-island/validators.cjs +2 -0
  641. package/dist/lib/mode-island/validators.cjs.map +1 -0
  642. package/dist/lib/mode-island/validators.js +10 -0
  643. package/dist/lib/mode-island/validators.js.map +1 -0
  644. package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
  645. package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
  646. package/dist/lib/motion-text/motion-text-constants.js +18 -6
  647. package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
  648. package/dist/lib/motion-text/motion-text.cjs +1 -1
  649. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  650. package/dist/lib/motion-text/motion-text.js +5 -7
  651. package/dist/lib/motion-text/motion-text.js.map +1 -1
  652. package/dist/lib/notice/notice-action.cjs +1 -1
  653. package/dist/lib/notice/notice-action.cjs.map +1 -1
  654. package/dist/lib/notice/notice-action.js +14 -14
  655. package/dist/lib/notice/notice-action.js.map +1 -1
  656. package/dist/lib/notice/notice-constants.cjs +1 -1
  657. package/dist/lib/notice/notice-constants.cjs.map +1 -1
  658. package/dist/lib/notice/notice-constants.js +2 -2
  659. package/dist/lib/notice/notice-constants.js.map +1 -1
  660. package/dist/lib/notice/notice-content.cjs +1 -1
  661. package/dist/lib/notice/notice-content.cjs.map +1 -1
  662. package/dist/lib/notice/notice-content.js +29 -12
  663. package/dist/lib/notice/notice-content.js.map +1 -1
  664. package/dist/lib/notice/notice-icon.cjs +1 -1
  665. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  666. package/dist/lib/notice/notice-icon.js +4 -4
  667. package/dist/lib/notice/notice-icon.js.map +1 -1
  668. package/dist/lib/notice/notice.cjs +1 -1
  669. package/dist/lib/notice/notice.cjs.map +1 -1
  670. package/dist/lib/notice/notice.js +17 -16
  671. package/dist/lib/notice/notice.js.map +1 -1
  672. package/dist/lib/pagination/pagination.cjs +1 -1
  673. package/dist/lib/pagination/pagination.cjs.map +1 -1
  674. package/dist/lib/pagination/pagination.js +13 -12
  675. package/dist/lib/pagination/pagination.js.map +1 -1
  676. package/dist/lib/popover/popover-constants.cjs +1 -1
  677. package/dist/lib/popover/popover-constants.cjs.map +1 -1
  678. package/dist/lib/popover/popover-constants.js +6 -6
  679. package/dist/lib/popover/popover-constants.js.map +1 -1
  680. package/dist/lib/popover/popover-header-footer.cjs +1 -1
  681. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  682. package/dist/lib/popover/popover-header-footer.js +11 -3
  683. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  684. package/dist/lib/popover/popover.cjs +1 -1
  685. package/dist/lib/popover/popover.cjs.map +1 -1
  686. package/dist/lib/popover/popover.js +78 -58
  687. package/dist/lib/popover/popover.js.map +1 -1
  688. package/dist/lib/radio/radio-constants.cjs +1 -1
  689. package/dist/lib/radio/radio-constants.cjs.map +1 -1
  690. package/dist/lib/radio/radio-constants.js +2 -2
  691. package/dist/lib/radio/radio-constants.js.map +1 -1
  692. package/dist/lib/radio/radio.cjs +1 -1
  693. package/dist/lib/radio/radio.cjs.map +1 -1
  694. package/dist/lib/radio/radio.js +94 -31
  695. package/dist/lib/radio/radio.js.map +1 -1
  696. package/dist/lib/resizable/index.cjs +1 -1
  697. package/dist/lib/resizable/index.js +3 -3
  698. package/dist/lib/resizable/resizable-handle.cjs +1 -1
  699. package/dist/lib/resizable/resizable-handle.js +1 -1
  700. package/dist/lib/resizable/resizable-panel.cjs +1 -1
  701. package/dist/lib/resizable/resizable-panel.js +1 -1
  702. package/dist/lib/resizable/resizable.cjs +1 -1
  703. package/dist/lib/resizable/resizable.js +1 -1
  704. package/dist/lib/rich-text-editor/index.cjs +1 -1
  705. package/dist/lib/rich-text-editor/index.js +1 -1
  706. package/dist/lib/rich-text-editor/markdownRenderer.cjs +1 -1
  707. package/dist/lib/rich-text-editor/markdownRenderer.js +1 -1
  708. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  709. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  710. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  711. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  712. package/dist/lib/root-layout/root-layout-constants.js +2 -0
  713. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  714. package/dist/lib/root-layout/root-layout.cjs +1 -1
  715. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  716. package/dist/lib/root-layout/root-layout.js +2 -2
  717. package/dist/lib/root-layout/root-layout.js.map +1 -1
  718. package/dist/lib/scroller/index.cjs +1 -1
  719. package/dist/lib/scroller/index.js +1 -1
  720. package/dist/lib/scroller/scroller.cjs +1 -1
  721. package/dist/lib/scroller/scroller.js +1 -1
  722. package/dist/lib/segmented-control/index.cjs +1 -0
  723. package/dist/lib/segmented-control/index.js +4 -0
  724. package/dist/lib/segmented-control/segmented-control-constants.cjs +2 -0
  725. package/dist/lib/segmented-control/segmented-control-constants.cjs.map +1 -0
  726. package/dist/lib/segmented-control/segmented-control-constants.js +41 -0
  727. package/dist/lib/segmented-control/segmented-control-constants.js.map +1 -0
  728. package/dist/lib/segmented-control/segmented-control-item.cjs +2 -0
  729. package/dist/lib/segmented-control/segmented-control-item.cjs.map +1 -0
  730. package/dist/lib/segmented-control/segmented-control-item.js +104 -0
  731. package/dist/lib/segmented-control/segmented-control-item.js.map +1 -0
  732. package/dist/lib/segmented-control/segmented-control.cjs +2 -0
  733. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -0
  734. package/dist/lib/segmented-control/segmented-control.js +204 -0
  735. package/dist/lib/segmented-control/segmented-control.js.map +1 -0
  736. package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
  737. package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
  738. package/dist/lib/select-menu/select-menu-constants.js +7 -2
  739. package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
  740. package/dist/lib/select-menu/select-menu.cjs +1 -1
  741. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  742. package/dist/lib/select-menu/select-menu.js +117 -58
  743. package/dist/lib/select-menu/select-menu.js.map +1 -1
  744. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  745. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  746. package/dist/lib/settings-menu-button/settings-menu-button.js +5 -5
  747. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  748. package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
  749. package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
  750. package/dist/lib/skeleton/skeleton-constants.js +10 -2
  751. package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
  752. package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
  753. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  754. package/dist/lib/skeleton/skeleton-list-item.js +2 -2
  755. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  756. package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
  757. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  758. package/dist/lib/skeleton/skeleton-shape.js +3 -3
  759. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  760. package/dist/lib/split-button/split-button-constants.cjs +1 -1
  761. package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
  762. package/dist/lib/split-button/split-button-constants.js +5 -0
  763. package/dist/lib/split-button/split-button-constants.js.map +1 -1
  764. package/dist/lib/split-button/split-button-end.cjs +2 -0
  765. package/dist/lib/split-button/split-button-end.cjs.map +1 -0
  766. package/dist/lib/split-button/{split-button-omega.js → split-button-end.js} +9 -9
  767. package/dist/lib/split-button/split-button-end.js.map +1 -0
  768. package/dist/lib/split-button/split-button-start.cjs +2 -0
  769. package/dist/lib/split-button/split-button-start.cjs.map +1 -0
  770. package/dist/lib/split-button/split-button-start.js +182 -0
  771. package/dist/lib/split-button/split-button-start.js.map +1 -0
  772. package/dist/lib/split-button/split-button.cjs +1 -1
  773. package/dist/lib/split-button/split-button.cjs.map +1 -1
  774. package/dist/lib/split-button/split-button.js +246 -71
  775. package/dist/lib/split-button/split-button.js.map +1 -1
  776. package/dist/lib/stack/stack-constants.cjs +1 -1
  777. package/dist/lib/stack/stack-constants.cjs.map +1 -1
  778. package/dist/lib/stack/stack-constants.js +10 -2
  779. package/dist/lib/stack/stack-constants.js.map +1 -1
  780. package/dist/lib/stack/stack.cjs.map +1 -1
  781. package/dist/lib/stack/stack.js.map +1 -1
  782. package/dist/lib/tab/index.cjs +1 -1
  783. package/dist/lib/tab/index.js +5 -5
  784. package/dist/lib/tab/tab-group.cjs +1 -1
  785. package/dist/lib/tab/tab-group.cjs.map +1 -1
  786. package/dist/lib/tab/tab-group.js +173 -50
  787. package/dist/lib/tab/tab-group.js.map +1 -1
  788. package/dist/lib/tab/tab.cjs +1 -1
  789. package/dist/lib/tab/tab.cjs.map +1 -1
  790. package/dist/lib/tab/tab.js +108 -23
  791. package/dist/lib/tab/tab.js.map +1 -1
  792. package/dist/lib/tab/tabs-constants.cjs +1 -1
  793. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  794. package/dist/lib/tab/tabs-constants.js +33 -2
  795. package/dist/lib/tab/tabs-constants.js.map +1 -1
  796. package/dist/lib/text/index.cjs +1 -0
  797. package/dist/lib/text/index.js +3 -0
  798. package/dist/lib/text/text-constants.cjs +2 -0
  799. package/dist/lib/text/text-constants.cjs.map +1 -0
  800. package/dist/lib/text/text-constants.js +126 -0
  801. package/dist/lib/text/text-constants.js.map +1 -0
  802. package/dist/lib/text/text.cjs +2 -0
  803. package/dist/lib/text/text.cjs.map +1 -0
  804. package/dist/lib/text/text.js +150 -0
  805. package/dist/lib/text/text.js.map +1 -0
  806. package/dist/lib/toast/index.cjs +1 -1
  807. package/dist/lib/toast/index.js +1 -1
  808. package/dist/lib/toast/toast.cjs +1 -1
  809. package/dist/lib/toast/toast.js +1 -1
  810. package/dist/lib/toggle/toggle-constants.cjs +1 -1
  811. package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
  812. package/dist/lib/toggle/toggle-constants.js +2 -0
  813. package/dist/lib/toggle/toggle-constants.js.map +1 -1
  814. package/dist/lib/toggle/toggle.cjs +1 -1
  815. package/dist/lib/toggle/toggle.cjs.map +1 -1
  816. package/dist/lib/toggle/toggle.js +24 -29
  817. package/dist/lib/toggle/toggle.js.map +1 -1
  818. package/dist/lib/tooltip/tooltip.cjs +1 -4
  819. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  820. package/dist/lib/tooltip/tooltip.js +36 -31
  821. package/dist/lib/tooltip/tooltip.js.map +1 -1
  822. package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
  823. package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
  824. package/dist/lib/tooltip-directive/tooltip.js +36 -35
  825. package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
  826. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  827. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  828. package/dist/lib/top-banner-info/top-banner-info.js +4 -4
  829. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  830. package/dist/lib/unread-pill/unread-pill.cjs +1 -1
  831. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  832. package/dist/lib/unread-pill/unread-pill.js +1 -1
  833. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  834. package/dist/lib/validation-messages/validation-messages.cjs +1 -1
  835. package/dist/lib/validation-messages/validation-messages.cjs.map +1 -1
  836. package/dist/lib/validation-messages/validation-messages.js +2 -2
  837. package/dist/lib/validation-messages/validation-messages.js.map +1 -1
  838. package/dist/localization/en-US.cjs +5 -0
  839. package/dist/localization/en-US.cjs.map +1 -1
  840. package/dist/localization/en-US.js +1 -1
  841. package/dist/localization/en-US.js.map +1 -1
  842. package/dist/{markdownRenderer-DCgGQseq.cjs → markdownRenderer-Dsq-CiH9.cjs} +1 -1
  843. package/dist/{markdownRenderer-DCgGQseq.cjs.map → markdownRenderer-Dsq-CiH9.cjs.map} +1 -1
  844. package/dist/{markdownRenderer-D_P94RyM.js → markdownRenderer-k7_rQkox.js} +1 -1
  845. package/dist/{markdownRenderer-D_P94RyM.js.map → markdownRenderer-k7_rQkox.js.map} +1 -1
  846. package/dist/{message_input-CHlTsBGK.js → message_input-BYy1xKCy.js} +129 -130
  847. package/dist/message_input-BYy1xKCy.js.map +1 -0
  848. package/dist/message_input-sSCHhaeC.cjs +2 -0
  849. package/dist/message_input-sSCHhaeC.cjs.map +1 -0
  850. package/dist/mode_constants-CzYJW9ua.cjs +2 -0
  851. package/dist/mode_constants-CzYJW9ua.cjs.map +1 -0
  852. package/dist/mode_constants-tb7TL85q.js +14 -0
  853. package/dist/mode_constants-tb7TL85q.js.map +1 -0
  854. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +85 -14
  855. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  856. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +313 -41
  857. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  858. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +302 -41
  859. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  860. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +228 -35
  861. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  862. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +62 -16
  863. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  864. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +237 -28
  865. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  866. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +184 -21
  867. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  868. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +53 -7
  869. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +228 -26
  870. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  871. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +216 -25
  872. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  873. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +1163 -178
  874. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  875. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +132 -42
  876. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  877. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +91 -23
  878. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  879. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +126 -35
  880. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  881. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +90 -13
  882. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  883. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +1622 -207
  884. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  885. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +226 -12
  886. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  887. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +636 -55
  888. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  889. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +226 -12
  890. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  891. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +53 -7
  892. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  893. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +122 -33
  894. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  895. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +87 -29
  896. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  897. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +82 -28
  898. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  899. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +588 -72
  900. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  901. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +480 -31
  902. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  903. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  904. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +479 -30
  905. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  906. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  907. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  908. package/dist/{resizable-aOVGO_Os.cjs → resizable-DhowneUp.cjs} +2 -2
  909. package/dist/{resizable-aOVGO_Os.cjs.map → resizable-DhowneUp.cjs.map} +1 -1
  910. package/dist/{resizable-D4-peBOl.js → resizable-xcOu-0_w.js} +3 -3
  911. package/dist/{resizable-D4-peBOl.js.map → resizable-xcOu-0_w.js.map} +1 -1
  912. package/dist/{resizable_handle-BlKBiWnx.js → resizable_handle-BAZzCA_i.js} +3 -3
  913. package/dist/{resizable_handle-BlKBiWnx.js.map → resizable_handle-BAZzCA_i.js.map} +1 -1
  914. package/dist/{resizable_handle-RIKS8frB.cjs → resizable_handle-fjKg48eY.cjs} +2 -2
  915. package/dist/{resizable_handle-RIKS8frB.cjs.map → resizable_handle-fjKg48eY.cjs.map} +1 -1
  916. package/dist/{resizable_utils-DhuzXRdP.cjs → resizable_utils-BE4lK07_.cjs} +1 -1
  917. package/dist/{resizable_utils-DhuzXRdP.cjs.map → resizable_utils-BE4lK07_.cjs.map} +1 -1
  918. package/dist/{resizable_utils-BComtrMV.js → resizable_utils-DsKnGHKW.js} +1 -1
  919. package/dist/{resizable_utils-BComtrMV.js.map → resizable_utils-DsKnGHKW.js.map} +1 -1
  920. package/dist/{rich_text_editor-Ba67C4Uk.js → rich_text_editor-CEW74QNe.js} +637 -598
  921. package/dist/{rich_text_editor-Ba67C4Uk.js.map → rich_text_editor-CEW74QNe.js.map} +1 -1
  922. package/dist/rich_text_editor-immDiKq_.cjs +10 -0
  923. package/dist/{rich_text_editor-DMP5eTlf.cjs.map → rich_text_editor-immDiKq_.cjs.map} +1 -1
  924. package/dist/scroller-C15VLKNK.cjs +2 -0
  925. package/dist/scroller-C15VLKNK.cjs.map +1 -0
  926. package/dist/{scroller-BGVDh3sq.js → scroller-DPqcc_Wl.js} +6 -6
  927. package/dist/scroller-DPqcc_Wl.js.map +1 -0
  928. package/dist/shared/sr_only_close_button.cjs +1 -1
  929. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  930. package/dist/shared/sr_only_close_button.js +1 -1
  931. package/dist/shared/sr_only_close_button.js.map +1 -1
  932. package/dist/toast-B1WZNMAm.cjs +2 -0
  933. package/dist/toast-B1WZNMAm.cjs.map +1 -0
  934. package/dist/{toast-DvPN-bCi.js → toast-DaH2KF7B.js} +52 -51
  935. package/dist/toast-DaH2KF7B.js.map +1 -0
  936. package/dist/{useResizableCalculations-DAajatT4.js → useResizableCalculations-2UpEXvfY.js} +2 -2
  937. package/dist/{useResizableCalculations-DAajatT4.js.map → useResizableCalculations-2UpEXvfY.js.map} +1 -1
  938. package/dist/{useResizableCalculations-BDITle3Q.cjs → useResizableCalculations-DPBjAFWQ.cjs} +2 -2
  939. package/dist/{useResizableCalculations-BDITle3Q.cjs.map → useResizableCalculations-DPBjAFWQ.cjs.map} +1 -1
  940. package/package.json +9 -7
  941. package/dist/attachment_carousel-BHxR7A76.cjs +0 -2
  942. package/dist/attachment_carousel-BHxR7A76.cjs.map +0 -1
  943. package/dist/attachment_carousel-CouFqFMw.js.map +0 -1
  944. package/dist/combobox-DgClbLOg.js.map +0 -1
  945. package/dist/combobox-DhjZxfUw.cjs +0 -3
  946. package/dist/combobox-DhjZxfUw.cjs.map +0 -1
  947. package/dist/components/split_button/split_button-alpha.vue.d.ts.map +0 -1
  948. package/dist/datepicker-DprRX9AH.cjs +0 -2
  949. package/dist/datepicker-DprRX9AH.cjs.map +0 -1
  950. package/dist/datepicker-LVDRC6Lf.js.map +0 -1
  951. package/dist/emoji_picker-Cl-T4BXK.cjs +0 -2
  952. package/dist/emoji_picker-Cl-T4BXK.cjs.map +0 -1
  953. package/dist/emoji_picker-tVHfpHDk.js.map +0 -1
  954. package/dist/lib/split-button/split-button-alpha.cjs +0 -2
  955. package/dist/lib/split-button/split-button-alpha.cjs.map +0 -1
  956. package/dist/lib/split-button/split-button-alpha.js +0 -107
  957. package/dist/lib/split-button/split-button-alpha.js.map +0 -1
  958. package/dist/lib/split-button/split-button-omega.cjs +0 -2
  959. package/dist/lib/split-button/split-button-omega.cjs.map +0 -1
  960. package/dist/lib/split-button/split-button-omega.js.map +0 -1
  961. package/dist/message_input-AWgvtwMV.cjs +0 -2
  962. package/dist/message_input-AWgvtwMV.cjs.map +0 -1
  963. package/dist/message_input-CHlTsBGK.js.map +0 -1
  964. package/dist/rich_text_editor-DMP5eTlf.cjs +0 -10
  965. package/dist/scroller-BGVDh3sq.js.map +0 -1
  966. package/dist/scroller-CjAsgjl9.cjs +0 -2
  967. package/dist/scroller-CjAsgjl9.cjs.map +0 -1
  968. package/dist/toast-DvPN-bCi.js.map +0 -1
  969. package/dist/toast-d8_zmgkL.cjs +0 -2
  970. package/dist/toast-d8_zmgkL.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"emoji_picker-tVHfpHDk.js","names":["$emit","$refs"],"sources":["../components/emoji_picker/modules/emoji_search.vue","../components/emoji_picker/modules/emoji_tabset.vue","../components/emoji_picker/composables/useKeyboardNavigation.js","../components/emoji_picker/modules/emoji_selector.vue","../components/emoji_picker/modules/emoji_skin_selector.vue","../components/emoji_picker/modules/emoji_description.vue","../components/emoji_picker/emoji_picker.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__search d-emoji-picker__alignment\">\n <dt-input\n id=\"searchInput\"\n ref=\"searchInput\"\n :placeholder=\"searchPlaceholderLabel\"\n :model-value=\"modelValue\"\n @update:model-value=\"$emit('update:modelValue', $event)\"\n @keydown.up=\"$emit('focus-tabset')\"\n @keydown.down.prevent=\"$emit('focus-emoji-selector')\"\n @keydown.enter=\"$emit('select-first-emoji')\"\n >\n <template #leftIcon>\n <dt-icon-search\n size=\"200\"\n />\n </template>\n <template\n v-if=\"modelValue.length > 0\"\n #rightIcon\n >\n <dt-button\n importance=\"clear\"\n size=\"xs\"\n class=\"d-emoji-picker__search-x-button\"\n circle\n kind=\"muted\"\n @click=\"clearSearch\"\n >\n <template #icon>\n <dt-icon-close\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-input>\n </div>\n</template>\n\n<script setup>\nimport { DtIconSearch, DtIconClose } from '@dialpad/dialtone-icons/vue3';\nimport { DtInput } from '@/components/input';\nimport { DtButton } from '@/components/button';\nimport { onMounted, ref } from 'vue';\n\ndefineProps({\n searchPlaceholderLabel: {\n type: String,\n required: true,\n },\n modelValue: {\n type: String,\n default: '',\n },\n});\n\nconst emits = defineEmits(['update:modelValue', 'focus-emoji-selector', 'focus-tabset', 'select-first-emoji']);\n\nconst searchInput = ref(null);\n\nfunction clearSearch () {\n emits('update:modelValue', '');\n focusSearchInput();\n}\n\nfunction focusSearchInput () {\n searchInput.value.focus();\n}\nonMounted(() => {\n focusSearchInput();\n});\n\ndefineExpose({\n focusSearchInput,\n});\n</script>\n","<template>\n <div class=\"d-emoji-picker__tabset\">\n <dt-tab-group\n :selected=\"selectedTab\"\n size=\"sm\"\n tab-list-class=\"d-emoji-picker__tabset-list\"\n >\n <template #tabs>\n <dt-tab\n v-for=\"(tab, index) in tabs\"\n :id=\"tab.id\"\n :key=\"tab.id\"\n :ref=\"el => { if (el) setTabsetRef(el) }\"\n :label=\"tab.label\"\n :panel-id=\"tab.panelId\"\n :tabindex=\"index + 1\"\n aria-controls=\"d-emoji-picker-list\"\n @keydown=\"handleKeyDown($event, tab.id)\"\n @click.capture.stop=\"selectTabset(tab.id)\"\n >\n <component\n :is=\"tab.icon\"\n size=\"400\"\n />\n </dt-tab>\n </template>\n </dt-tab-group>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, watch } from 'vue';\nimport { DtTab, DtTabGroup } from '@/components/tab';\nimport { returnFirstEl } from '@/common/utils';\nimport {\n DtIconClock,\n DtIconSatisfied,\n DtIconLivingThing,\n DtIconFood,\n DtIconObject,\n DtIconTransportation,\n DtIconLightbulb,\n DtIconHeart,\n DtIconFlag,\n DtIconDialpadStar,\n} from '@dialpad/dialtone-icons/vue3';\n\nconst props = defineProps({\n /**\n * Whether to show the recently used tab or not\n * @type {Boolean}\n * @default false\n */\n showRecentlyUsedTab: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether to show the custom emojis tab or not\n * @type {Boolean}\n * @default false\n */\n showCustomEmojisTab: {\n type: Boolean,\n default: false,\n },\n\n scrollIntoTab: {\n type: Number,\n required: true,\n },\n\n emojiFilter: {\n type: String,\n default: '',\n },\n\n /**\n * The labels for the aria-label\n * @type {Array}\n * @required\n */\n tabSetLabels: {\n type: Array,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Emitted when a tab is selected\n * @event selected-tabset\n * @param {String} tabId - The name of the tab that was selected\n */\n 'selected-tabset',\n\n 'focus-search-input',\n 'focus-skin-selector',\n]);\n\nconst TABS_DATA = [\n { label: props.tabSetLabels[0], icon: DtIconClock },\n { label: props.tabSetLabels[1], icon: DtIconSatisfied },\n { label: props.tabSetLabels[2], icon: DtIconLivingThing },\n { label: props.tabSetLabels[3], icon: DtIconFood },\n { label: props.tabSetLabels[4], icon: DtIconObject },\n { label: props.tabSetLabels[5], icon: DtIconTransportation },\n { label: props.tabSetLabels[6], icon: DtIconLightbulb },\n { label: props.tabSetLabels[7], icon: DtIconHeart },\n { label: props.tabSetLabels[8], icon: DtIconFlag },\n { label: props.tabSetLabels[9], icon: DtIconDialpadStar },\n];\n\nconst tabs = computed(() => {\n const tabsData = props.showRecentlyUsedTab ? TABS_DATA : TABS_DATA.slice(1);\n // if showCustomEmojisTab is false remove last index of TABS_DATA\n if (!props.showCustomEmojisTab) {\n tabsData.pop();\n }\n\n return tabsData.map((tab, index) => ({\n ...tab,\n // IDs on dt-tab component need to be on string\n id: (index + 1).toString(),\n panelId: (index + 1).toString(),\n }));\n});\n\nconst isSearching = computed(() => props.emojiFilter.length > 0);\n\nconst selectedTab = ref('1');\n\nconst tabsetRef = ref([]);\n\nwatch(() => props.scrollIntoTab,\n () => {\n if (!isSearching.value) {\n selectedTab.value = (props.scrollIntoTab + 1).toString();\n }\n });\n\nwatch(isSearching,\n () => {\n if (isSearching.value) {\n selectedTab.value = null;\n }\n });\n\n/**\n * We are using .capture.stop modifiers on the click event\n * because we don't want to trigger the click event of the\n * dt-tab component\n */\nfunction selectTabset (id) {\n // IDs on scrollToTab need to be on number\n const parseId = parseInt(id);\n // IDs on dt-tab component need to be on string\n selectedTab.value = id;\n emits('selected-tabset', parseId);\n}\n\nfunction setTabsetRef (ref) {\n // We push the $el, because $el is the button inside the dt-tab component\n // and we need the button to focus it\n tabsetRef.value.push(returnFirstEl(ref.$el));\n}\n\nfunction focusTabset () {\n tabsetRef.value[0].focus();\n}\n\nfunction handleKeyDown (event, tabId) {\n if (event.key === 'Enter') {\n selectTabset(tabId);\n // We blur because seems like the tab component override the selected prop, and it removes the selected style\n tabsetRef.value[tabId - 1].blur();\n }\n\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n emits('focus-skin-selector');\n } else {\n emits('focus-search-input');\n }\n }\n\n if (event.key === 'ArrowDown') {\n // Jump to search input\n emits('focus-search-input');\n }\n}\n\ndefineExpose({\n focusTabset,\n});\n</script>\n","import { ref } from 'vue';\nimport { EMOJIS_PER_ROW, ARROW_KEYS } from '@/components/emoji_picker/emoji_picker_constants';\n\nexport function useKeyboardNavigation () {\n const emojiRefs = ref([]);\n const emojiFilteredRefs = ref([]);\n const isFiltering = ref(false);\n const hoverFirstEmoji = ref(true);\n\n function _handleArrowLeft (indexTab, indexEmoji) {\n if (!focusEmoji(indexTab, indexEmoji - 1)) {\n if (emojiRefs.value[indexTab - 1]) {\n focusEmoji(indexTab - 1, emojiRefs.value[indexTab - 1].length - 1);\n } else {\n focusEmoji(emojiRefs.value.length - 1, emojiRefs.value[emojiRefs.value.length - 1].length - 1);\n }\n }\n }\n\n function _handleArrowRight (indexTab, indexEmoji) {\n if (!focusEmoji(indexTab, indexEmoji + 1)) {\n if (!focusEmoji(indexTab + 1, 0)) {\n focusEmoji(0, 0);\n }\n }\n }\n\n function _handleArrowLeftFiltered (indexTab, indexEmoji) {\n if (!focusEmoji(0, indexEmoji - 1)) {\n focusEmoji(0, emojiFilteredRefs.value.length - 1);\n }\n }\n\n function _handleArrowRightFiltered (indexTab, indexEmoji) {\n if (!focusEmoji(0, indexEmoji + 1)) {\n focusEmoji(0, 0);\n }\n }\n\n function _handleHorizontalNavigation (direction, indexTab, indexEmoji) {\n if (isFiltering.value) {\n if (direction === 'left') {\n _handleArrowLeftFiltered(indexTab, indexEmoji);\n } else if (direction === 'right') {\n _handleArrowRightFiltered(indexTab, indexEmoji);\n }\n } else {\n if (direction === 'left') {\n _handleArrowLeft(indexTab, indexEmoji);\n } else if (direction === 'right') {\n _handleArrowRight(indexTab, indexEmoji);\n }\n }\n }\n\n function focusEmoji (indexTab, indexEmoji) {\n const emojiRef = isFiltering.value\n ? emojiFilteredRefs.value?.[indexEmoji]\n : emojiRefs.value?.[indexTab]?.[indexEmoji];\n\n if (emojiRef) {\n emojiRef.focus();\n return true;\n }\n\n return false;\n }\n\n function setEmojiRef (el, indexTab, indexEmoji) {\n if (!emojiRefs.value[indexTab]) {\n emojiRefs.value[indexTab] = [];\n }\n emojiRefs.value[indexTab][indexEmoji] = el;\n }\n\n function setFilteredRef (el, index) {\n emojiFilteredRefs.value[index] = el;\n }\n\n function handleArrowNavigationFiltered (key, indexEmoji) {\n hoverFirstEmoji.value = false;\n\n if (key === ARROW_KEYS.ARROW_UP) {\n const position = indexEmoji % EMOJIS_PER_ROW;\n\n if (!focusEmoji(0, indexEmoji - EMOJIS_PER_ROW)) {\n const lastEmojiPosition =\n emojiFilteredRefs.value.length - (emojiFilteredRefs.value.length % EMOJIS_PER_ROW) + position;\n\n focusEmoji(0, lastEmojiPosition);\n\n if (!focusEmoji(0, lastEmojiPosition)) {\n focusEmoji(0, emojiFilteredRefs.value.length - 1);\n }\n }\n }\n\n if (key === ARROW_KEYS.ARROW_DOWN) {\n if (!focusEmoji(0, indexEmoji + EMOJIS_PER_ROW)) {\n const position = indexEmoji % EMOJIS_PER_ROW;\n\n if (emojiFilteredRefs.value?.[indexEmoji + (EMOJIS_PER_ROW - position)]) {\n focusEmoji(0, emojiFilteredRefs.value.length - 1);\n } else {\n focusEmoji(0, position);\n }\n }\n }\n\n if (key === ARROW_KEYS.ARROW_LEFT) {\n _handleHorizontalNavigation('left', 0, indexEmoji);\n }\n\n if (key === ARROW_KEYS.ARROW_RIGHT) {\n _handleHorizontalNavigation('right', 0, indexEmoji);\n }\n }\n\n function handleArrowNavigation (key, indexTab, indexEmoji) {\n if (key === 'ArrowUp') {\n const position = indexEmoji % EMOJIS_PER_ROW;\n\n if (indexTab === 0) {\n // we are on the first emoji tab, then we should jump to the last row of the last emoji tab\n const numberOfMissingEmojis =\n EMOJIS_PER_ROW - (emojiRefs.value[emojiRefs.value.length - 1].length % EMOJIS_PER_ROW);\n\n const emojiToJump =\n emojiRefs.value[emojiRefs.value.length - 1].length + numberOfMissingEmojis - (EMOJIS_PER_ROW - position);\n\n if (!focusEmoji(emojiRefs.value.length - 1, emojiToJump)) {\n // if there is no emoji in this position, jump to the last emoji of the row\n focusEmoji(emojiRefs.value.length - 1, emojiRefs.value[emojiRefs.value.length - 1].length - 1);\n }\n return;\n }\n\n // if we are not on the first tab, we should jump to the previous row of the current tab\n if (!focusEmoji(indexTab, indexEmoji - EMOJIS_PER_ROW)) {\n // if there is no previous row, we should jump to emoji in the sampe position of the previous tab\n const previousTab = indexTab - 1 < 0 ? 0 : indexTab - 1;\n const emojisInPreviousTab = emojiRefs.value[previousTab].length;\n const lastEmojiPosition = emojisInPreviousTab - (emojisInPreviousTab % EMOJIS_PER_ROW) + position;\n\n if (!focusEmoji(previousTab, lastEmojiPosition)) {\n // if there is no emoji in this position, jump to the last emoji of the row\n focusEmoji(indexTab - 1, emojiRefs.value[indexTab - 1].length - 1);\n }\n }\n }\n\n if (key === 'ArrowDown') {\n if (!focusEmoji(indexTab, indexEmoji + EMOJIS_PER_ROW)) {\n // if cannot go down\n\n // Calculate position from cell 0 to cell 8\n const position = indexEmoji % EMOJIS_PER_ROW;\n\n // check if it exists a next row in the current tab\n if (emojiRefs.value?.[indexTab]?.[indexEmoji + (EMOJIS_PER_ROW - position)]) {\n // if it exists, we should focus the last emoji of the next row in the current tab\n focusEmoji(indexTab, emojiRefs.value[indexTab].length - 1);\n // if we are at the end of the list it will do nothing\n } else {\n // We don't have next row, we are in the last of the tab, then jump\n // to the next tab but in the equal emoji position in row 0.\n\n if (!focusEmoji(indexTab + 1, position)) {\n // We are on the bottom!, should jump to the same position emoji in the first row of the first tabset\n // if it doesn't has, jump to the last\n if (!focusEmoji(0, position)) {\n focusEmoji(0, emojiRefs.value[0].length - 1);\n }\n }\n }\n }\n }\n\n if (key === 'ArrowLeft') {\n _handleHorizontalNavigation('left', indexTab, indexEmoji);\n }\n\n if (key === 'ArrowRight') {\n _handleHorizontalNavigation('right', indexTab, indexEmoji);\n }\n }\n\n return {\n emojiFilteredRefs,\n isFiltering,\n hoverFirstEmoji,\n setEmojiRef,\n setFilteredRef,\n focusEmoji,\n handleArrowNavigationFiltered,\n handleArrowNavigation,\n };\n}\n","<template>\n <div\n class=\"d-emoji-picker__selector\"\n >\n <div\n id=\"d-emoji-picker-list\"\n ref=\"listRef\"\n class=\"d-emoji-picker__list\"\n >\n <p\n v-if=\"emojiFilter\"\n class=\"d-emoji-picker__search-label d-emoji-picker__alignment\"\n >\n {{ filteredEmojis.length > 0 ? searchResultsLabel : searchNoResultsLabel }}\n </p>\n <div\n v-else\n ref=\"tabCategoryRef\"\n class=\"d-emoji-picker__category d-emoji-picker__alignment\"\n >\n <p>\n {{ fixedLabel }}\n </p>\n </div>\n <div\n v-for=\"(tabLabel, indexTab) in tabLabels\"\n v-show=\"!emojiFilter\"\n :key=\"indexTab\"\n :ref=\"tabLabel.ref\"\n class=\"d-emoji-picker__alignment\"\n >\n <p\n v-if=\"indexTab\"\n >\n {{ tabLabel.label }}\n </p>\n <div\n class=\"d-emoji-picker__tab\"\n >\n <button\n v-for=\"(emoji, indexEmoji) in\n (emojis[tabs[indexTab] + skinTone] ? emojis[tabs[indexTab] + skinTone] : emojis[tabs[indexTab]])\"\n :key=\"emoji.shortname\"\n :ref=\"el => { if (el) setEmojiRef(el, indexTab, indexEmoji) }\"\n type=\"button\"\n :aria-label=\"emoji.name\"\n @click=\"event => selectEmoji(emoji, event)\"\n @focusin=\"highlightEmoji(emoji)\"\n @focusout=\"highlightEmoji(null)\"\n @mouseover=\"highlightEmoji(emoji)\"\n @mouseleave=\"highlightEmoji(null)\"\n @keydown=\"event => handleKeyDown(event, indexTab, indexEmoji, emoji)\"\n >\n <img\n class=\"d-icon d-icon--size-500\"\n :alt=\"emoji.name\"\n :aria-label=\"emoji.name\"\n :title=\"emoji.name\"\n :src=\"getImgSrc(emoji)\"\n @error=\"handleImageError\"\n >\n </button>\n </div>\n </div>\n <div\n v-if=\"emojiFilter\"\n class=\"d-emoji-picker__alignment\"\n >\n <div\n class=\"d-emoji-picker__tab \"\n data-qa=\"filtered-emojis\"\n >\n <button\n v-for=\"(emoji, index) in filteredEmojis\"\n :key=\"emoji.shortname\"\n :ref=\"el => { if (el) setFilteredRef(el, index) }\"\n type=\"button\"\n :aria-label=\"emoji.name\"\n :class=\"{\n 'hover-emoji': (index === 0 && hoverFirstEmoji),\n }\"\n @click=\"event => selectEmoji(emoji, event)\"\n @focusin=\"highlightEmoji(emoji)\"\n @focusout=\"highlightEmoji(null)\"\n @mouseover=\"hoverEmoji(emoji)\"\n @mouseleave=\"hoverEmoji(null)\"\n @keydown=\"event => handleKeyDownFilteredEmojis(event, index, emoji)\"\n >\n <img\n class=\"d-icon d-icon--size-500\"\n :alt=\"emoji.name\"\n :aria-label=\"emoji.name\"\n :title=\"emoji.name\"\n :src=\"`${CDN_URL + emoji.unicode_character}.png`\"\n >\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\n/* eslint-disable max-lines */\nimport { emojisGrouped as emojis } from '@dialpad/dialtone-emojis';\nimport { computed, onMounted, onBeforeUnmount, ref, watch, nextTick } from 'vue';\nimport { CDN_URL, ARROW_KEYS } from '@/components/emoji_picker/emoji_picker_constants';\nimport { useKeyboardNavigation } from '@/components/emoji_picker/composables/useKeyboardNavigation';\n\nconst props = defineProps({\n /**\n * The filter to apply to the emoji list\n * @type {String}\n * @default ''\n */\n emojiFilter: {\n type: String,\n default: '',\n },\n\n /**\n * The skin tone to apply to the emoji list\n * @type {String}\n * @required\n */\n skinTone: {\n type: String,\n required: true,\n },\n\n /**\n * The labels for the tabset\n * @type {Array}\n * @required\n */\n tabsetLabels: {\n type: Array,\n required: true,\n },\n\n selectedTabset: {\n type: Object,\n required: true,\n },\n\n /**\n * The label for the search results tab\n * @type {String}\n * @required\n */\n searchResultsLabel: {\n type: String,\n required: true,\n },\n\n searchNoResultsLabel: {\n type: String,\n required: true,\n },\n\n /**\n * The list of recently used emojis\n * @type {Array}\n */\n recentlyUsedEmojis: {\n type: Array,\n default: () => [],\n },\n\n /**\n * The list of custom emojis\n * @type {Array}\n */\n customEmojis: {\n type: Array,\n default: () => [],\n },\n});\n\nconst emits = defineEmits([\n /**\n * Emitted when the user hover over an emoji\n * @event highlighted-emoji\n * @param {Object} emoji - The emoji data that was hovered\n */\n 'highlighted-emoji',\n\n /**\n * Emitted when the user select an emoji\n * @event selected-emoji\n * @param {Object} emoji - The emoji data that was selected\n */\n 'selected-emoji',\n\n /**\n * Emitted when the user scroll into an emoji tab\n * @event scroll-into-tab\n * @param {Number} tab-index - The tab that was scrolled into\n */\n 'scroll-into-tab',\n\n /**\n * Emitted when the user reach bottom scroll\n * This event is used on handleScroll method\n * @event scroll-bottom-reached\n */\n 'scroll-bottom-reached',\n\n /**\n * Emitted when the user reach the end of the emoji list\n * @event focus-skin-selector\n */\n 'focus-skin-selector',\n\n /**\n * Emitted when the user shift tab in first tab of emoji selector\n * @event focus-search-input\n */\n 'focus-search-input',\n]);\n\nconst {\n emojiFilteredRefs,\n isFiltering,\n hoverFirstEmoji,\n setEmojiRef,\n setFilteredRef,\n focusEmoji,\n handleArrowNavigationFiltered,\n handleArrowNavigation,\n} = useKeyboardNavigation();\n\n/**\n * The ref for the tab category\n * This is used to display the fixed label\n */\nconst tabCategoryRef = ref(null);\n\n/**\n * The ref for the list\n * This is used to display the tabs\n */\nconst listRef = ref(null);\n\n/**\n * The ref for the tab label observer\n * This is used to update the fixed label\n */\nconst tabLabelObserver = ref(null);\n\n/**\n * The list of tabs\n * This is used to display the tabs\n */\nconst TABS_DATA = ['Recently used', 'People', 'Nature', 'Food', 'Activity', 'Travel', 'Objects', 'Symbols', 'Flags', 'Custom'];\n\n/**\n * The list of tab labels\n * This is used to display the tabs\n * This is a computed property because it will check if the recently used emojis or custom emojis list is empty\n * If it is empty, it will remove it\n */\nconst tabLabels = computed(() => {\n let updateTabLabels = props.tabsetLabels.map((label) => ({ label, ref: ref(null) }));\n\n if (props.recentlyUsedEmojis && !props.recentlyUsedEmojis.length) {\n updateTabLabels = props.tabsetLabels.slice(1).map((label) => ({ label, ref: ref(null) }));\n }\n\n if (props.customEmojis && !props.customEmojis.length) {\n updateTabLabels.pop();\n }\n\n return updateTabLabels;\n});\n\n/**\n * The label of the fixed tab\n * This is used to display the fixed label\n */\nconst fixedLabel = ref(tabLabels.value[0].label);\n\n/**\n * The list of tabs\n * This is used to display the tabs\n * This is a computed property because it will check if the recently used emojis list or custom emojis is empty\n * If it is empty, it will remove it\n * The difference between this and the tab labels is that this one will set the structure of tabs\n * and the tab labels will set the labels\n */\nconst tabs = computed(() => {\n const updateTabsOrder = props.recentlyUsedEmojis.length ? TABS_DATA.slice() : TABS_DATA.slice(1);\n\n if (props.customEmojis && !props.customEmojis.length) {\n updateTabsOrder.pop();\n }\n\n return updateTabsOrder;\n});\n\n/**\n * The list of current emojis that match the filter\n * This will be updated when the emojiFilter changes\n * This is used to display the search results\n * The difference between this and the current emojis list is that this one will not have the skin tone applied\n */\nconst filteredEmojis = ref([]);\n\n/**\n * The current emojis list we are displaying\n * This will be updated when the skin tone changes\n * The difference between this and the emojis list is that this one will have only the skin tone applied\n */\nconst currentEmojis = computed(() => {\n return [\n ...emojis[`People${props.skinTone}`],\n ...emojis.Nature,\n ...emojis.Food,\n ...emojis[`Activity${props.skinTone}`],\n ...emojis.Travel,\n ...emojis[`Objects${props.skinTone}`],\n ...emojis.Symbols,\n ...emojis.Flags,\n ];\n});\n\n/**\n * This will trigger the searchByNameAndKeywords function with debounce of 300 milliseconds\n */\nconst debouncedSearch = debounce(() => {\n // We clean the emojiFilteredRefs to have an updated ref list for the search results\n emojiFilteredRefs.value = [];\n searchByNameAndKeywords();\n});\n\n/**\n * handleScroll will be defined when user scroll\n */\nconst handleScroll = () => {\n const container = listRef.value;\n // TODO -- this will probably need to be updated if we add more emojis.\n // because the container height will change.\n // maybe with a nextTick similar of scrollToTab.\n if (container.scrollTop + container.clientHeight >= container.scrollHeight) {\n emits('scroll-bottom-reached');\n }\n};\n\n/**\n * Update the current emojis list on skin tone changes\n * Also update the filtered emojis list\n * @listens skinTone\n */\nwatch(currentEmojis, () => {\n searchByNameAndKeywords();\n}, { immediate: true });\n\n/**\n * Update the recently used emojis list on recently used emojis prop changes\n * @listens recentlyUsedEmojis\n */\nwatch(() => props.recentlyUsedEmojis,\n () => {\n emojis['Recently used'] = props.recentlyUsedEmojis;\n }, { immediate: true });\n\n/**\n * Update the custom emojis list on custom emojis prop changes\n * @listens customEmojis\n */\nwatch(() => props.customEmojis,\n () => {\n emojis.Custom = props.customEmojis;\n }, { immediate: true });\n\n/**\n * Search for emojis by name and keywords\n * Will update the filtered emojis list on emojiFilter update\n * @listens emojiFilter\n */\nwatch(() => props.emojiFilter, () => {\n resetScroll();\n if (props.emojiFilter) {\n isFiltering.value = true;\n } else {\n isFiltering.value = false;\n // If the emoji filter is empty, emit null to remove the highlighted emoji\n // of the previous search\n highlightEmoji(null);\n }\n debouncedSearch();\n});\n\nwatch(\n () => props.selectedTabset,\n (tab) => {\n scrollToTab(tab.tabId);\n },\n { deep: true },\n);\n\nfunction hoverEmoji (emoji, isFirst = false) {\n hoverFirstEmoji.value = isFirst;\n emits('highlighted-emoji', emoji);\n}\n\n/**\n * Filters an array of emoji objects based on a search string that matches both the name and keywords.\n * Will update the filtered emojis list\n */\nfunction searchByNameAndKeywords () {\n const searchStr = props.emojiFilter.toLowerCase();\n filteredEmojis.value = currentEmojis.value.filter(obj => {\n const nameIncludesSearchStr = obj.name.toLowerCase().includes(searchStr);\n const keywordsIncludeSearchStr = obj.keywords.some(keyword => keyword.toLowerCase().includes(searchStr));\n return nameIncludesSearchStr || keywordsIncludeSearchStr;\n });\n nextTick(() => {\n if (searchStr) {\n hoverEmoji(filteredEmojis.value[0], true);\n }\n });\n}\n\nfunction debounce (fn, delay = 300) {\n let timeout;\n\n return (...args) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => fn(...args), delay);\n };\n}\n\nfunction getImgSrc (emoji) {\n // TODO Update json structure to have a property for custom emojis and avoid using date_added\n if (emoji.date_added) { // if custom emoji\n return emoji.image;\n } else { // if regular emoji\n return CDN_URL + emoji.unicode_character + '.png';\n }\n}\n\n/**\n * Handle image error - We hide the entire button if the image is not found\n */\nfunction handleImageError (event) {\n event.target.parentNode.style.display = 'none';\n}\n\n/**\n * Scroll to the selected tab\n */\nfunction scrollToTab (tabIndex, focusFirstEmoji = true) {\n const tabLabel = tabLabels.value[tabIndex - 1];\n const tabElement = tabLabel.ref.value[0];\n\n nextTick(() => {\n const container = listRef.value;\n const offsetTop = tabIndex === 1 ? 0 : tabElement.offsetTop - 15;\n\n container.scrollTop = offsetTop;\n\n if (focusFirstEmoji) {\n focusEmoji((tabIndex - 1), 0);\n }\n });\n}\n\nfunction resetScroll () {\n const container = listRef.value;\n\n container.scrollTop = 0;\n}\n\nfunction setBottomScrollListener () {\n listRef.value.addEventListener('scroll', handleScroll);\n}\n\n/**\n * This code creates an IntersectionObserver object that monitors the intersection between\n * the root element (tabCategoryRef) and its targets (the child elements of listRef),\n * and updates the value of the fixedLabel variable accordingly.\n */\nfunction setTabLabelObserver () {\n /**\n * The code extracts the target element and its index from the IntersectionObserverEntry object,\n * and checks whether the target intersects with the root and is positioned above or below it.\n */\n tabLabelObserver.value = new IntersectionObserver(async (entries) => {\n // eslint-disable-next-line complexity\n entries.forEach(entry => {\n const { target } = entry;\n const index = parseInt(target.dataset.index);\n\n /**\n * If the target is positioned above the root,\n * the code updates the value of the fixed label to the label of the previous tab,\n * or the first tab if the current tab is the first one. If the target is positioned below the root, the code\n * updates the value of the fixed label to the label of the current tab.\n * If the target stops intersecting with the root and its index is 1 (the second tab),\n * the code updates the value of the fixed label to the label of the first tab.\n * NOTES:\n * This last condition is needed because sometimes it is\n * not detect the intersection between the root and the target.\n * We also provide a 50 pixels offset to the root element in the first condition to always get the\n * first tab if it has fewer emojis, because in some cases if you quickly scroll the observer does not detect it.\n */\n if (entry.isIntersecting && target.offsetTop <= tabCategoryRef.value.offsetTop + 50) {\n fixedLabel.value = tabLabels.value[index - 1]?.label ?? tabLabels.value[0]?.label;\n emits('scroll-into-tab', index - 1);\n } else if (entry.boundingClientRect.bottom <= tabCategoryRef.value?.getBoundingClientRect().bottom) {\n emits('scroll-into-tab', index);\n fixedLabel.value = tabLabels.value[index]?.label;\n } else if (index === 1) {\n emits('scroll-into-tab', index);\n fixedLabel.value = tabLabels.value[0]?.label;\n }\n });\n });\n\n /**\n * The tabLabelObserver is set to observe the root element and all its children elements with\n * the IntersectionObserver object, and sets their data-index attribute to their index.\n */\n tabLabelObserver.value.observe(tabCategoryRef.value);\n\n Array.from(listRef.value.children).forEach((child, index) => {\n tabLabelObserver.value.observe(child);\n child.dataset.index = index;\n });\n}\n\nconst handleKeyDownFilteredEmojis = (event, indexEmoji, emoji) => {\n event.preventDefault();\n\n if (Object.values(ARROW_KEYS).includes(event.key)) {\n handleArrowNavigationFiltered(event.key, indexEmoji);\n return;\n }\n\n switch (event.key) {\n case 'Tab':\n emits('focus-skin-selector');\n break;\n case 'Enter':\n selectEmoji(emoji, event);\n break;\n default:\n break;\n }\n};\n\n \nconst handleKeyDown = (event, indexTab, indexEmoji, emoji) => {\n event.preventDefault();\n\n if (Object.values(ARROW_KEYS).includes(event.key)) {\n handleArrowNavigation(event.key, indexTab, indexEmoji);\n return;\n }\n\n switch (event.key) {\n case 'Tab':\n if (event.shiftKey) {\n if (focusEmoji(indexTab, 0) && indexTab > 0) {\n scrollToTab(indexTab, true);\n } else {\n scrollToTab(1, false);\n emits('focus-search-input');\n }\n } else {\n if (focusEmoji(indexTab + 1, 0)) {\n scrollToTab(indexTab + 1 + 1, false);\n } else {\n // We are on the last emoji tabset, jump to the skin selector\n emits('focus-skin-selector');\n }\n }\n break;\n\n case 'Enter':\n selectEmoji(emoji, event);\n break;\n\n default:\n break;\n }\n};\n\nfunction selectEmoji (emoji, event) {\n emits('selected-emoji', { ...emoji, shift_key: event.shiftKey });\n}\n\nfunction highlightEmoji (emoji) {\n emits('highlighted-emoji', emoji);\n}\n\nfunction focusEmojiSelector () {\n focusEmoji(0, 0);\n}\n\nfunction focusLastEmoji () {\n scrollToTab(tabs.value.length, true);\n}\n\nonMounted(() => {\n setTabLabelObserver();\n setBottomScrollListener();\n});\n\nonBeforeUnmount(() => {\n tabLabelObserver.value.disconnect();\n listRef.value.removeEventListener('scroll', handleScroll);\n});\n\ndefineExpose({\n focusEmojiSelector,\n focusLastEmoji,\n});\n</script>\n","<template>\n <div data-qa=\"skin-selector\">\n <div\n v-show=\"isOpen\"\n class=\"d-emoji-picker__skin-list\"\n >\n <button\n v-for=\"(skin, index) in skinList\"\n :ref=\"el => { if (el) setSkinsRef(el) }\"\n :key=\"skin.name\"\n :class=\"{\n 'selected': skinSelected.skinCode === skin.skinCode,\n }\"\n @keydown=\"event => handleKeyDown(event, skin, index)\"\n @click=\"selectSkin(skin)\"\n >\n <img\n class=\"d-icon d-icon--size-500\"\n :alt=\"skin.name\"\n :aria-label=\"skin.name\"\n :title=\"skin.name\"\n :src=\"`${CDN_URL + skin.unicode_output}.png`\"\n >\n </button>\n </div>\n <div\n v-show=\"!isOpen\"\n class=\"d-emoji-picker__skin-selected\"\n >\n <dt-tooltip placement=\"top-end\">\n {{ skinSelectorButtonTooltipLabel }}\n <template #anchor>\n <button\n ref=\"skinSelectorRef\"\n :aria-label=\"skinSelectorButtonTooltipLabel\"\n tabindex=\"-1\"\n @click=\"toggleSkinList\"\n @keydown=\"event => handleKeyDown(event)\"\n >\n <img\n class=\"d-icon d-icon--size-500\"\n :alt=\"skinSelected.name\"\n :aria-label=\"skinSelected.name\"\n :title=\"skinSelected.name\"\n :src=\"`${CDN_URL + skinSelected.unicode_output}.png`\"\n >\n </button>\n </template>\n </dt-tooltip>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, nextTick, ref, watchEffect } from 'vue';\nimport { CDN_URL, EMOJI_PICKER_SKIN_TONE_MODIFIERS } from '@/components/emoji_picker/emoji_picker_constants.js';\nimport { DtTooltip } from '@/components/tooltip';\n\nconst props = defineProps({\n /**\n * The skin tone to apply to the emoji list\n * @type {String}\n * @required\n */\n skinTone: {\n type: String,\n required: true,\n },\n\n isHovering: {\n type: Boolean,\n default: false,\n },\n\n skinSelectorButtonTooltipLabel: {\n type: String,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * The skin tone that was selected\n * @event skin-tone\n * @type {Number}\n */\n 'skin-tone',\n 'focus-tabset',\n 'focus-last-emoji',\n]);\n\nconst skinList = [\n {\n name: ':wave_tone1:',\n unicode_output: '1f44b-1f3fb',\n skinTone: EMOJI_PICKER_SKIN_TONE_MODIFIERS.LIGHT,\n skinCode: '_tone1',\n },\n {\n name: ':wave_tone2:',\n unicode_output: '1f44b-1f3fc',\n skinTone: EMOJI_PICKER_SKIN_TONE_MODIFIERS.MEDIUM_LIGHT,\n skinCode: '_tone2',\n },\n {\n name: ':wave_tone3:',\n unicode_output: '1f44b-1f3fd',\n skinTone: EMOJI_PICKER_SKIN_TONE_MODIFIERS.MEDIUM,\n skinCode: '_tone3',\n },\n {\n name: ':wave_tone4:',\n unicode_output: '1f44b-1f3fe',\n skinTone: EMOJI_PICKER_SKIN_TONE_MODIFIERS.MEDIUM_DARK,\n skinCode: '_tone4',\n },\n {\n name: ':wave_tone5:',\n unicode_output: '1f44b-1f3ff',\n skinTone: EMOJI_PICKER_SKIN_TONE_MODIFIERS.DARK,\n skinCode: '_tone5',\n },\n {\n name: ':wave:',\n unicode_output: '1f44b',\n skinTone: EMOJI_PICKER_SKIN_TONE_MODIFIERS.DEFAULT,\n skinCode: '',\n },\n];\n\nconst isOpen = ref(false);\n\nconst skinSelectorRef = ref(null);\n\nconst skinsRef = ref([]);\n\n/**\n * It will close the skin selector if the user is hovering over the emoji list\n */\nwatchEffect(\n () => props.isHovering && (isOpen.value = false),\n);\n\n/**\n * It will initially display props.skinTone. If a new skin tone is selected,\n * it will display that until props.skinTone changes.\n */\nconst skinPassedIn = computed(() => skinList.find((skin) => skin.skinTone === props.skinTone));\nconst skinSelected = ref(skinPassedIn.value);\nwatchEffect(() => skinPassedIn.value && (skinSelected.value = skinPassedIn.value));\n\nfunction setSkinsRef (ref) {\n skinsRef.value.push(ref);\n}\nfunction focusSkinSelector () {\n skinSelectorRef.value.focus();\n}\n\nfunction selectSkin (skin) {\n skinSelected.value = skin;\n isOpen.value = false;\n emits('skin-tone', skin.skinTone);\n nextTick(() => focusSkinSelector());\n}\n\nconst handleKeyDown = (event, skin, index) => {\n event.preventDefault();\n\n if (event.key === 'ArrowLeft') {\n if (index === 0) skinsRef.value[skinsRef.value.length - 1]?.focus();\n skinsRef.value[index - 1]?.focus();\n }\n\n if (event.key === 'ArrowRight') {\n skinsRef.value[index + 1]?.focus();\n }\n\n if (event.key === 'Enter') {\n if (skin) { selectSkin(skin); } else {\n toggleSkinList();\n }\n }\n\n if (event.key === 'Tab') {\n if (event.shiftKey) {\n emits('focus-last-emoji');\n } else {\n emits('focus-tabset');\n }\n }\n};\n\nfunction toggleSkinList () {\n isOpen.value = !isOpen.value;\n nextTick(() => skinsRef.value[0].focus());\n}\n\ndefineExpose({\n focusSkinSelector,\n});\n</script>\n","<template>\n <div class=\"d-emoji-picker__data\">\n <img\n v-if=\"emoji\"\n class=\"d-icon d-icon--size-500\"\n :alt=\"emoji.name\"\n :aria-label=\"emoji.name\"\n :title=\"emoji.name\"\n :src=\"getImgSrc(emoji)\"\n >\n <div>{{ emoji?.name }}</div>\n </div>\n</template>\n\n<script setup>\nimport { CDN_URL } from '@/components/emoji_picker/emoji_picker_constants';\n\ndefineProps({\n /**\n * Emoji data\n * @type {Object}\n * @default null\n */\n emoji: {\n type: Object,\n default: null,\n },\n});\n\nfunction getImgSrc (emoji) {\n if (emoji.date_added) { // if custom emoji\n return emoji.image;\n } else { // if regular emoji\n return `${CDN_URL + emoji.unicode_character}.png`;\n }\n}\n</script>\n","<template>\n <div\n class=\"d-emoji-picker\"\n >\n <div class=\"d-emoji-picker--header\">\n <emoji-tabset\n ref=\"tabsetRef\"\n :emoji-filter=\"internalSearchQuery\"\n :show-custom-emojis-tab=\"showCustomEmojisTab\"\n :show-recently-used-tab=\"showRecentlyUsedTab\"\n :scroll-into-tab=\"scrollIntoTab\"\n :tab-set-labels=\"tabSetLabels\"\n @focus-skin-selector=\"$refs.skinSelectorRef.focusSkinSelector()\"\n @focus-search-input=\"showSearch\n ? $refs.searchInputRef.focusSearchInput()\n : $refs.emojiSelectorRef.focusEmojiSelector()\"\n @selected-tabset=\"scrollToSelectedTabset\"\n @keydown.esc=\"emits('close')\"\n />\n </div>\n <div class=\"d-emoji-picker--body\">\n <emoji-search\n v-if=\"showSearch\"\n ref=\"searchInputRef\"\n v-model=\"internalSearchQuery\"\n :search-placeholder-label=\"searchPlaceholderLabel\"\n @select-first-emoji=\"emits('selected-emoji', highlightedEmoji)\"\n @focus-tabset=\"$refs.tabsetRef.focusTabset()\"\n @focus-emoji-selector=\"$refs.emojiSelectorRef.focusEmojiSelector()\"\n @keydown.esc=\"emits('close')\"\n />\n <emoji-selector\n ref=\"emojiSelectorRef\"\n :emoji-filter=\"internalSearchQuery\"\n :skin-tone=\"skinTone\"\n :tabset-labels=\"tabSetLabels\"\n :search-results-label=\"searchResultsLabel\"\n :search-no-results-label=\"searchNoResultsLabel\"\n :recently-used-emojis=\"recentlyUsedEmojis\"\n :custom-emojis=\"customEmojis\"\n :selected-tabset=\"selectedTabset\"\n @scroll-into-tab=\"updateScrollIntoTab\"\n @highlighted-emoji=\"updateHighlightedEmoji\"\n @selected-emoji=\"emits('selected-emoji', $event)\"\n @focus-skin-selector=\"$refs.skinSelectorRef.focusSkinSelector()\"\n @focus-search-input=\"showSearch ? $refs.searchInputRef.focusSearchInput() : $refs.tabsetRef.focusTabset()\"\n @keydown.esc=\"emits('close')\"\n @scroll-bottom-reached=\"emits('scroll-bottom-reached')\"\n />\n </div>\n <div class=\"d-emoji-picker--footer\">\n <dt-button\n v-if=\"showAddEmojiButton && !highlightedEmoji\"\n importance=\"outlined\"\n :aria-label=\"addEmojiLabel\"\n class=\"d-emoji-picker__add-emoji\"\n @click=\"emits('add-emoji')\"\n >\n {{ addEmojiLabel }}\n </dt-button>\n <emoji-description :emoji=\"highlightedEmoji\" />\n <emoji-skin-selector\n ref=\"skinSelectorRef\"\n :is-hovering=\"!!highlightedEmoji\"\n :skin-selector-button-tooltip-label=\"skinSelectorButtonTooltipLabel\"\n :skin-tone=\"skinTone\"\n @skin-tone=\"emits('skin-tone', $event)\"\n @focus-tabset=\"$refs.tabsetRef.focusTabset()\"\n @focus-last-emoji=\"$refs.emojiSelectorRef.focusLastEmoji()\"\n @keydown.esc=\"emits('close')\"\n />\n </div>\n </div>\n</template>\n\n<script setup>\nimport EmojiSearch from './modules/emoji_search.vue';\nimport EmojiTabset from './modules/emoji_tabset.vue';\nimport EmojiSelector from './modules/emoji_selector.vue';\nimport EmojiSkinSelector from './modules/emoji_skin_selector.vue';\nimport EmojiDescription from './modules/emoji_description.vue';\nimport { DtButton } from '../button';\nimport { computed, ref, watch } from 'vue';\nimport { DialtoneLocalization } from '@/localization';\n\nconst props = defineProps({\n /**\n * The array with recently used emoji object\n * This list is necessary to fill the recently used tab\n * @type {Array}\n * @default []\n * @example\n * <dt-emoji-picker :recentlyUsedEmojis=\"[emojiObject, emojiObject]\" />\n */\n // TODO try to simplify this to achieve an array of unicode characters and not an entire emoji data object\n recentlyUsedEmojis: {\n type: Array,\n default: () => [],\n },\n\n /**\n * The array with custom emojis object\n * This list is necessary to fill the custom tab\n * @type {Array}\n * @default []\n * @example\n * <dt-emoji-picker :customEmojis=\"[emojiObject, emojiObject]\" />\n */\n customEmojis: {\n type: Array,\n },\n\n /**\n * The skin tone to show the emojis\n * This prop gives the possibility to use the skin tone selected by the user previously\n * @type {String}\n * @default 'Default'\n * @values 'Default', 'Light', 'MediumLight', 'Medium', 'MediumDark', 'Dark'\n * @example\n * <dt-emoji-picker :skinTone=\"'Default'\" />\n */\n skinTone: {\n type: String,\n default: 'Default',\n },\n\n /**\n\n * Sets the search query that filters emojis.\n * @type {String}\n * @example\n * <dt-emoji-picker search-query=\"smile\" />\n */\n searchQuery: {\n type: String,\n default: '',\n },\n\n /**\n * Shows the search input\n * @type {Boolean}\n * @example\n * <dt-emoji-picker :show-search=\"false\" />\n */\n showSearch: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Shows the add emoji button in the footer when no emoji is highlighted\n * @type {Boolean}\n * @example\n * <dt-emoji-picker :show-add-emoji-button=\"true\" />\n */\n showAddEmojiButton: {\n type: Boolean,\n default: false,\n },\n});\n\nconst emits = defineEmits(\n [\n /**\n * It will emit the selected emoji\n * @event selected-emoji\n * @param {Object} emoji - The selected emoji from the emoji selector\n */\n 'selected-emoji',\n\n /**\n * Emitted when the user reach bottom scroll\n * This is being handled by handleScroll method\n * @event scroll-bottom-reached\n */\n 'scroll-bottom-reached',\n\n /**\n * It will emit the selected skin tone\n * @event skin-tone\n * @param {String} skin - The selected skin tone from the skin selector\n */\n 'skin-tone',\n\n /**\n * Since the keyboard events are encapsulated, we emit this event to close the picker\n * @event close\n */\n 'close',\n\n /**\n * Emitted when the user clicks on the add emoji button\n * @event add-emoji\n */\n 'add-emoji',\n ],\n);\n\nconst internalSearchQuery = ref(props.searchQuery.value);\nconst highlightedEmoji = ref(null);\nconst selectedTabset = ref({});\n\nconst scrollIntoTab = ref(0);\n\nconst showRecentlyUsedTab = computed(() => props.recentlyUsedEmojis?.length > 0);\nconst showCustomEmojisTab = computed(() => props.customEmojis?.length > 0);\n\nconst i18n = new DialtoneLocalization();\n\nconst tabSetLabels = [\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_RECENTLY_USED_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_SMILEYS_AND_PEOPLE_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_NATURE_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_FOOD_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_ACTIVITY_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_TRAVEL_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_OBJECTS_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_SYMBOLS_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_FLAGS_LABEL'),\n i18n.$t('DIALTONE_EMOJI_PICKER_TABSET_CUSTOM_LABEL'),\n];\n\nconst searchPlaceholderLabel = i18n.$t('DIALTONE_EMOJI_PICKER_SEARCH_PLACEHOLDER_LABEL');\nconst searchResultsLabel = i18n.$t('DIALTONE_EMOJI_PICKER_SEARCH_RESULTS_LABEL');\nconst searchNoResultsLabel = i18n.$t('DIALTONE_EMOJI_PICKER_SEARCH_NO_RESULTS_LABEL');\nconst skinSelectorButtonTooltipLabel = i18n.$t('DIALTONE_EMOJI_PICKER_SKIN_SELECTOR_BUTTON_TOOLTIP_LABEL');\nconst addEmojiLabel = i18n.$t('DIALTONE_EMOJI_PICKER_ADD_EMOJI_LABEL');\n\nwatch(\n () => props.searchQuery,\n (newValue) => {\n internalSearchQuery.value = newValue;\n },\n);\n\n/**\n * Handle the selected tabset event\n * We're creating a new object with the same value as selectedTabset and assigning it back to selectedTabset.\n * Vue will see this as a new object and trigger the watcher in the child component.\n * Using this method, we are able to trigger the watcher in the child component even if the value being passed is the\n * same as the previous value.\n * @event selectedTabset\n * @param tabId {String} - The id of the tab that was selected\n */\nfunction scrollToSelectedTabset (tabId) {\n internalSearchQuery.value = '';\n selectedTabset.value = { ...selectedTabset.value, tabId };\n}\n\nfunction updateScrollIntoTab (value) {\n scrollIntoTab.value = value;\n}\n\nfunction updateHighlightedEmoji (emoji) {\n highlightedEmoji.value = emoji;\n}\n</script>\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`../button/button-constants.cjs`),n=require(`../button/button.cjs`);let r=require(`vue`);var i={compatConfig:{MODE:3},name:`SplitButtonAlpha`,components:{DtButton:n.default},props:{active:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},iconPosition:{type:String,default:`left`},labelClass:{type:[String,Array,Object],default:``},loading:{type:Boolean,default:!1},tooltipText:{type:String,default:``},assertiveOnFocus:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},importance:{type:String,default:`primary`},kind:{type:String,default:`default`},size:{type:String,default:`md`}},data(){return{BUTTON_ICON_SIZES:t.BUTTON_ICON_SIZES}},computed:{tooltipConfig(){return{message:this.tooltipText,inverted:this.kind===`inverted`}}}};function a(e,t,n,i,a,o){let s=(0,r.resolveComponent)(`dt-button`),c=(0,r.resolveDirective)(`dt-tooltip`);return(0,r.withDirectives)(((0,r.openBlock)(),(0,r.createBlock)(s,{"data-qa":`dt-split-button-alpha`,active:n.active,"aria-label":n.ariaLabel,"assertive-on-focus":n.assertiveOnFocus,class:(0,r.normalizeClass)(`d-split-btn__alpha d-split-btn__alpha--${n.size}`),disabled:n.disabled,"icon-position":n.iconPosition,importance:n.importance,kind:n.kind,"label-class":n.labelClass,loading:n.loading,size:n.size},{icon:(0,r.withCtx)(()=>[(0,r.renderSlot)(e.$slots,`icon`,{size:a.BUTTON_ICON_SIZES[n.size]})]),default:(0,r.withCtx)(()=>[(0,r.renderSlot)(e.$slots,`default`)]),_:3},8,[`active`,`aria-label`,`assertive-on-focus`,`class`,`disabled`,`icon-position`,`importance`,`kind`,`label-class`,`loading`,`size`])),[[c,o.tooltipConfig]])}var o=e.t(i,[[`render`,a]]);exports.default=o;
2
- //# sourceMappingURL=split-button-alpha.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-alpha.cjs","names":[],"sources":["../../../components/split_button/split_button-alpha.vue"],"sourcesContent":["<template>\n <dt-button\n v-dt-tooltip=\"tooltipConfig\"\n data-qa=\"dt-split-button-alpha\"\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :assertive-on-focus=\"assertiveOnFocus\"\n :class=\"`d-split-btn__alpha d-split-btn__alpha--${size}`\"\n :disabled=\"disabled\"\n :icon-position=\"iconPosition\"\n :importance=\"importance\"\n :kind=\"kind\"\n :label-class=\"labelClass\"\n :loading=\"loading\"\n :size=\"size\"\n >\n <template #icon>\n <slot\n name=\"icon\"\n :size=\"BUTTON_ICON_SIZES[size]\"\n />\n </template>\n <slot name=\"default\" />\n </dt-button>\n</template>\n\n<script>\nimport { BUTTON_ICON_SIZES, DtButton } from '@/components/button';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'SplitButtonAlpha',\n\n components: {\n DtButton,\n },\n\n props: {\n /**\n * Determines whether the button should have active styling\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the button\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * The position of the icon slot within the button.\n */\n iconPosition: {\n type: String,\n default: 'left',\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Whether the button should display a loading animation or not.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown in tooltip when you hover the button\n */\n tooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button is in focus.\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n */\n importance: {\n type: String,\n default: 'primary',\n },\n\n /**\n * The color of the button.\n */\n kind: {\n type: String,\n default: 'default',\n },\n\n /**\n * The size of the button.\n */\n size: {\n type: String,\n default: 'md',\n },\n },\n\n data () {\n return {\n BUTTON_ICON_SIZES,\n };\n },\n\n computed: {\n tooltipConfig () {\n return {\n message: this.tooltipText,\n inverted: this.kind === 'inverted',\n };\n },\n },\n};\n</script>\n"],"mappings":"sSA6BA,IAAK,EAAU,CACb,aAAc,CAAE,KAAM,EAAG,CACzB,KAAM,mBAEN,WAAY,CACV,SAAA,EAAA,QACD,CAED,MAAO,CAIL,OAAQ,CACN,KAAM,QACN,QAAS,GACV,CAKD,UAAW,CACT,KAAM,OACN,QAAS,KACV,CAKD,aAAc,CACZ,KAAM,OACN,QAAS,OACV,CAKD,WAAY,CACV,KAAM,CAAC,OAAQ,MAAO,OAAO,CAC7B,QAAS,GACV,CAKD,QAAS,CACP,KAAM,QACN,QAAS,GACV,CAKD,YAAa,CACX,KAAM,OACN,QAAS,GACV,CAMD,iBAAkB,CAChB,KAAM,QACN,QAAS,GACV,CAKD,SAAU,CACR,KAAM,QACN,QAAS,GACV,CAKD,WAAY,CACV,KAAM,OACN,QAAS,UACV,CAKD,KAAM,CACJ,KAAM,OACN,QAAS,UACV,CAKD,KAAM,CACJ,KAAM,OACN,QAAS,KACV,CACF,CAED,MAAQ,CACN,MAAO,CACL,kBAAA,EAAA,kBACD,EAGH,SAAU,CACR,eAAiB,CACf,MAAO,CACL,QAAS,KAAK,YACd,SAAU,KAAK,OAAS,WACzB,EAEJ,CACF,0KAvHa,EAAA,CApBV,UAAQ,wBACP,OAAQ,EAAA,OACR,aAAY,EAAA,UACZ,qBAAoB,EAAA,iBACpB,OAAA,EAAA,EAAA,gBAAK,0CAA4C,EAAA,OAAI,CACrD,SAAU,EAAA,SACV,gBAAe,EAAA,aACf,WAAY,EAAA,WACZ,KAAM,EAAA,KACN,cAAa,EAAA,WACb,QAAS,EAAA,QACT,KAAM,EAAA,OAEI,MAAA,EAAA,EAAA,aAIP,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,OAAA,CADC,KAAM,EAAA,kBAAkB,EAAA,MAAA,CAAA,CAAA,CAAA,2BAGN,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,UAAA,CAAA,CAAA,iJApBT,EAAA,cAAa,CAAA,CAAA"}
@@ -1,107 +0,0 @@
1
- import { t as e } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
2
- import { BUTTON_ICON_SIZES as t } from "../button/button-constants.js";
3
- import n from "../button/button.js";
4
- import { createBlock as r, normalizeClass as i, openBlock as a, renderSlot as o, resolveComponent as s, resolveDirective as c, withCtx as l, withDirectives as u } from "vue";
5
- //#region components/split_button/split_button-alpha.vue
6
- var d = {
7
- compatConfig: { MODE: 3 },
8
- name: "SplitButtonAlpha",
9
- components: { DtButton: n },
10
- props: {
11
- active: {
12
- type: Boolean,
13
- default: !1
14
- },
15
- ariaLabel: {
16
- type: String,
17
- default: null
18
- },
19
- iconPosition: {
20
- type: String,
21
- default: "left"
22
- },
23
- labelClass: {
24
- type: [
25
- String,
26
- Array,
27
- Object
28
- ],
29
- default: ""
30
- },
31
- loading: {
32
- type: Boolean,
33
- default: !1
34
- },
35
- tooltipText: {
36
- type: String,
37
- default: ""
38
- },
39
- assertiveOnFocus: {
40
- type: Boolean,
41
- default: !1
42
- },
43
- disabled: {
44
- type: Boolean,
45
- default: !1
46
- },
47
- importance: {
48
- type: String,
49
- default: "primary"
50
- },
51
- kind: {
52
- type: String,
53
- default: "default"
54
- },
55
- size: {
56
- type: String,
57
- default: "md"
58
- }
59
- },
60
- data() {
61
- return { BUTTON_ICON_SIZES: t };
62
- },
63
- computed: { tooltipConfig() {
64
- return {
65
- message: this.tooltipText,
66
- inverted: this.kind === "inverted"
67
- };
68
- } }
69
- };
70
- function f(e, t, n, d, f, p) {
71
- let m = s("dt-button"), h = c("dt-tooltip");
72
- return u((a(), r(m, {
73
- "data-qa": "dt-split-button-alpha",
74
- active: n.active,
75
- "aria-label": n.ariaLabel,
76
- "assertive-on-focus": n.assertiveOnFocus,
77
- class: i(`d-split-btn__alpha d-split-btn__alpha--${n.size}`),
78
- disabled: n.disabled,
79
- "icon-position": n.iconPosition,
80
- importance: n.importance,
81
- kind: n.kind,
82
- "label-class": n.labelClass,
83
- loading: n.loading,
84
- size: n.size
85
- }, {
86
- icon: l(() => [o(e.$slots, "icon", { size: f.BUTTON_ICON_SIZES[n.size] })]),
87
- default: l(() => [o(e.$slots, "default")]),
88
- _: 3
89
- }, 8, [
90
- "active",
91
- "aria-label",
92
- "assertive-on-focus",
93
- "class",
94
- "disabled",
95
- "icon-position",
96
- "importance",
97
- "kind",
98
- "label-class",
99
- "loading",
100
- "size"
101
- ])), [[h, p.tooltipConfig]]);
102
- }
103
- var p = /* @__PURE__ */ e(d, [["render", f]]);
104
- //#endregion
105
- export { p as default };
106
-
107
- //# sourceMappingURL=split-button-alpha.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-alpha.js","names":[],"sources":["../../../components/split_button/split_button-alpha.vue"],"sourcesContent":["<template>\n <dt-button\n v-dt-tooltip=\"tooltipConfig\"\n data-qa=\"dt-split-button-alpha\"\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :assertive-on-focus=\"assertiveOnFocus\"\n :class=\"`d-split-btn__alpha d-split-btn__alpha--${size}`\"\n :disabled=\"disabled\"\n :icon-position=\"iconPosition\"\n :importance=\"importance\"\n :kind=\"kind\"\n :label-class=\"labelClass\"\n :loading=\"loading\"\n :size=\"size\"\n >\n <template #icon>\n <slot\n name=\"icon\"\n :size=\"BUTTON_ICON_SIZES[size]\"\n />\n </template>\n <slot name=\"default\" />\n </dt-button>\n</template>\n\n<script>\nimport { BUTTON_ICON_SIZES, DtButton } from '@/components/button';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'SplitButtonAlpha',\n\n components: {\n DtButton,\n },\n\n props: {\n /**\n * Determines whether the button should have active styling\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the button\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * The position of the icon slot within the button.\n */\n iconPosition: {\n type: String,\n default: 'left',\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Whether the button should display a loading animation or not.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown in tooltip when you hover the button\n */\n tooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button is in focus.\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n */\n importance: {\n type: String,\n default: 'primary',\n },\n\n /**\n * The color of the button.\n */\n kind: {\n type: String,\n default: 'default',\n },\n\n /**\n * The size of the button.\n */\n size: {\n type: String,\n default: 'md',\n },\n },\n\n data () {\n return {\n BUTTON_ICON_SIZES,\n };\n },\n\n computed: {\n tooltipConfig () {\n return {\n message: this.tooltipText,\n inverted: this.kind === 'inverted',\n };\n },\n },\n};\n</script>\n"],"mappings":";;;;;AA6BA,IAAK,IAAU;CACb,cAAc,EAAE,MAAM,GAAG;CACzB,MAAM;CAEN,YAAY,EACV,UAAA,GACD;CAED,OAAO;EAIL,QAAQ;GACN,MAAM;GACN,SAAS;GACV;EAKD,WAAW;GACT,MAAM;GACN,SAAS;GACV;EAKD,cAAc;GACZ,MAAM;GACN,SAAS;GACV;EAKD,YAAY;GACV,MAAM;IAAC;IAAQ;IAAO;IAAO;GAC7B,SAAS;GACV;EAKD,SAAS;GACP,MAAM;GACN,SAAS;GACV;EAKD,aAAa;GACX,MAAM;GACN,SAAS;GACV;EAMD,kBAAkB;GAChB,MAAM;GACN,SAAS;GACV;EAKD,UAAU;GACR,MAAM;GACN,SAAS;GACV;EAKD,YAAY;GACV,MAAM;GACN,SAAS;GACV;EAKD,MAAM;GACJ,MAAM;GACN,SAAS;GACV;EAKD,MAAM;GACJ,MAAM;GACN,SAAS;GACV;EACF;CAED,OAAQ;AACN,SAAO,EACL,sBACD;;CAGH,UAAU,EACR,gBAAiB;AACf,SAAO;GACL,SAAS,KAAK;GACd,UAAU,KAAK,SAAS;GACzB;IAEJ;CACF;;;gBA7IC,EAsBY,GAAA;EApBV,WAAQ;EACP,QAAQ,EAAA;EACR,cAAY,EAAA;EACZ,sBAAoB,EAAA;EACpB,OAAK,EAAA,0CAA4C,EAAA,OAAI;EACrD,UAAU,EAAA;EACV,iBAAe,EAAA;EACf,YAAY,EAAA;EACZ,MAAM,EAAA;EACN,eAAa,EAAA;EACb,SAAS,EAAA;EACT,MAAM,EAAA;;EAEI,MAAI,QAIX,CAHF,EAGE,EAAA,QAAA,QAAA,EADC,MAAM,EAAA,kBAAkB,EAAA,OAAA,CAAA,CAAA,CAAA;mBAGN,CAAvB,EAAuB,EAAA,QAAA,UAAA,CAAA,CAAA;;;;;;;;;;;;;;WApBT,EAAA,cAAa,CAAA,CAAA"}
@@ -1,2 +0,0 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/utils/index.cjs`),t=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),n=require(`../button/button.cjs`),r=require(`./split-button-constants.cjs`);let i=require(`vue`),a=require(`@dialpad/dialtone-icons/vue3`);var o={compatConfig:{MODE:3},name:`SplitButtonOmega`,components:{DtButton:n.default,DtIconChevronDown:a.DtIconChevronDown},props:{active:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},disabled:{type:Boolean,default:!1},id:{type:String,default:e.getUniqueString()},importance:{type:String,default:`primary`},kind:{type:String,default:`default`},size:{type:String,default:`md`},tooltipText:{type:String,default:``}},data(){return{SPLIT_BUTTON_ICON_SIZES:r.SPLIT_BUTTON_ICON_SIZES}}};function s(e,t,n,r,a,o){let s=(0,i.resolveComponent)(`dt-icon-chevron-down`),c=(0,i.resolveComponent)(`dt-button`),l=(0,i.resolveDirective)(`dt-tooltip`);return(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createBlock)(c,{id:n.id,"data-qa":`dt-split-button-omega`,active:n.active,"aria-label":n.ariaLabel,class:(0,i.normalizeClass)(`d-split-btn__omega d-split-btn__omega--${n.size}`),disabled:n.disabled,importance:n.importance,kind:n.kind,size:n.size},{icon:(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`icon`,{size:a.SPLIT_BUTTON_ICON_SIZES[n.size]},()=>[(0,i.createVNode)(s,{size:a.SPLIT_BUTTON_ICON_SIZES[n.size]},null,8,[`size`])])]),_:3},8,[`id`,`active`,`aria-label`,`class`,`disabled`,`importance`,`kind`,`size`])),[[l,{message:n.tooltipText,inverted:n.kind===`inverted`}]])}var c=t.t(o,[[`render`,s]]);exports.default=c;
2
- //# sourceMappingURL=split-button-omega.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-omega.cjs","names":[],"sources":["../../../components/split_button/split_button-omega.vue"],"sourcesContent":["<template>\n <dt-button\n :id=\"id\"\n v-dt-tooltip=\"{ message: tooltipText, inverted: kind === 'inverted' }\"\n data-qa=\"dt-split-button-omega\"\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :class=\"`d-split-btn__omega d-split-btn__omega--${size}`\"\n :disabled=\"disabled\"\n :importance=\"importance\"\n :kind=\"kind\"\n :size=\"size\"\n >\n <template #icon>\n <slot\n name=\"icon\"\n :size=\"SPLIT_BUTTON_ICON_SIZES[size]\"\n >\n <dt-icon-chevron-down :size=\"SPLIT_BUTTON_ICON_SIZES[size]\" />\n </slot>\n </template>\n </dt-button>\n</template>\n\n<script>\nimport { SPLIT_BUTTON_ICON_SIZES } from './split_button_constants';\nimport { DtButton } from '@/components/button';\nimport { DtIconChevronDown } from '@dialpad/dialtone-icons/vue3';\nimport { getUniqueString } from '@/common/utils';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'SplitButtonOmega',\n components: {\n DtButton,\n DtIconChevronDown,\n },\n\n props: {\n /**\n * Determines whether the button should have active styling\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the button\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * HTML button disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover\n */\n id: {\n type: String,\n default: getUniqueString(),\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n */\n importance: {\n type: String,\n default: 'primary',\n },\n\n /**\n * The color of the button.\n */\n kind: {\n type: String,\n default: 'default',\n },\n\n /**\n * The size of the button.\n */\n size: {\n type: String,\n default: 'md',\n },\n\n /**\n * Text shown in tooltip when you hover the button\n */\n tooltipText: {\n type: String,\n default: '',\n },\n },\n\n data () {\n return {\n SPLIT_BUTTON_ICON_SIZES,\n };\n },\n};\n</script>\n"],"mappings":"wXA8BA,IAAK,EAAU,CACb,aAAc,CAAE,KAAM,EAAG,CACzB,KAAM,mBACN,WAAY,CACV,SAAA,EAAA,QACA,kBAAA,EAAA,kBACD,CAED,MAAO,CAIL,OAAQ,CACN,KAAM,QACN,QAAS,GACV,CAKD,UAAW,CACT,KAAM,OACN,QAAS,KACV,CAKD,SAAU,CACR,KAAM,QACN,QAAS,GACV,CAMD,GAAI,CACF,KAAM,OACN,QAAS,EAAA,iBAAiB,CAC3B,CAKD,WAAY,CACV,KAAM,OACN,QAAS,UACV,CAKD,KAAM,CACJ,KAAM,OACN,QAAS,UACV,CAKD,KAAM,CACJ,KAAM,OACN,QAAS,KACV,CAKD,YAAa,CACX,KAAM,OACN,QAAS,GACV,CACF,CAED,MAAQ,CACN,MAAO,CACL,wBAAA,EAAA,wBACD,EAEJ,2NAzFa,EAAA,CAnBT,GAAI,EAAA,GAEL,UAAQ,wBACP,OAAQ,EAAA,OACR,aAAY,EAAA,UACZ,OAAA,EAAA,EAAA,gBAAK,0CAA4C,EAAA,OAAI,CACrD,SAAU,EAAA,SACV,WAAY,EAAA,WACZ,KAAM,EAAA,KACN,KAAM,EAAA,OAEI,MAAA,EAAA,EAAA,aAMF,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,OAAA,CAHJ,KAAM,EAAA,wBAAwB,EAAA,MAAA,KAG1B,EAAA,EAAA,EAAA,aADyD,EAAA,CAAvC,KAAM,EAAA,wBAAwB,EAAA,MAAA,CAAA,KAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kGAfhC,EAAA,YAAW,SAAY,EAAA,OAAI,WAAA,CAAA,CAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-button-omega.js","names":[],"sources":["../../../components/split_button/split_button-omega.vue"],"sourcesContent":["<template>\n <dt-button\n :id=\"id\"\n v-dt-tooltip=\"{ message: tooltipText, inverted: kind === 'inverted' }\"\n data-qa=\"dt-split-button-omega\"\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :class=\"`d-split-btn__omega d-split-btn__omega--${size}`\"\n :disabled=\"disabled\"\n :importance=\"importance\"\n :kind=\"kind\"\n :size=\"size\"\n >\n <template #icon>\n <slot\n name=\"icon\"\n :size=\"SPLIT_BUTTON_ICON_SIZES[size]\"\n >\n <dt-icon-chevron-down :size=\"SPLIT_BUTTON_ICON_SIZES[size]\" />\n </slot>\n </template>\n </dt-button>\n</template>\n\n<script>\nimport { SPLIT_BUTTON_ICON_SIZES } from './split_button_constants';\nimport { DtButton } from '@/components/button';\nimport { DtIconChevronDown } from '@dialpad/dialtone-icons/vue3';\nimport { getUniqueString } from '@/common/utils';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'SplitButtonOmega',\n components: {\n DtButton,\n DtIconChevronDown,\n },\n\n props: {\n /**\n * Determines whether the button should have active styling\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the button\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * HTML button disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover\n */\n id: {\n type: String,\n default: getUniqueString(),\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n */\n importance: {\n type: String,\n default: 'primary',\n },\n\n /**\n * The color of the button.\n */\n kind: {\n type: String,\n default: 'default',\n },\n\n /**\n * The size of the button.\n */\n size: {\n type: String,\n default: 'md',\n },\n\n /**\n * Text shown in tooltip when you hover the button\n */\n tooltipText: {\n type: String,\n default: '',\n },\n },\n\n data () {\n return {\n SPLIT_BUTTON_ICON_SIZES,\n };\n },\n};\n</script>\n"],"mappings":";;;;;;;AA8BA,IAAK,IAAU;CACb,cAAc,EAAE,MAAM,GAAG;CACzB,MAAM;CACN,YAAY;EACV,UAAA;EACA;EACD;CAED,OAAO;EAIL,QAAQ;GACN,MAAM;GACN,SAAS;GACV;EAKD,WAAW;GACT,MAAM;GACN,SAAS;GACV;EAKD,UAAU;GACR,MAAM;GACN,SAAS;GACV;EAMD,IAAI;GACF,MAAM;GACN,SAAS,GAAiB;GAC3B;EAKD,YAAY;GACV,MAAM;GACN,SAAS;GACV;EAKD,MAAM;GACJ,MAAM;GACN,SAAS;GACV;EAKD,MAAM;GACJ,MAAM;GACN,SAAS;GACV;EAKD,aAAa;GACX,MAAM;GACN,SAAS;GACV;EACF;CAED,OAAQ;AACN,SAAO,EACL,4BACD;;CAEJ;;;gBA7GC,EAoBY,GAAA;EAnBT,IAAI,EAAA;EAEL,WAAQ;EACP,QAAQ,EAAA;EACR,cAAY,EAAA;EACZ,OAAK,EAAA,0CAA4C,EAAA,OAAI;EACrD,UAAU,EAAA;EACV,YAAY,EAAA;EACZ,MAAM,EAAA;EACN,MAAM,EAAA;;EAEI,MAAI,QAMN,CALP,EAKO,EAAA,QAAA,QAAA,EAHJ,MAAM,EAAA,wBAAwB,EAAA,OAAA,QAG1B,CADL,EAA8D,GAAA,EAAvC,MAAM,EAAA,wBAAwB,EAAA,OAAA,EAAA,MAAA,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;WAfhC,EAAA;EAAW,UAAY,EAAA,SAAI;EAAA,CAAA,CAAA,CAAA"}
@@ -1,2 +0,0 @@
1
- require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./common/utils/index.cjs`),t=require(`./_plugin-vue_export-helper-D8jCH6HB.cjs`),n=require(`./localization/index.cjs`),r=require(`./lib/button/button.cjs`),i=require(`./lib/item-layout/item-layout.cjs`),a=require(`./lib/stack/stack.cjs`),o=require(`./lib/tooltip/tooltip.cjs`),s=require(`./lib/popover/popover.cjs`),c=require(`./lib/input/input.cjs`),l=require(`./emoji_picker-Cl-T4BXK.cjs`),u=require(`./node_modules/@tiptap/vue-3.cjs`),d=require(`./rich_text_editor-DMP5eTlf.cjs`),f=require(`./lib/rich-text-editor/rich-text-editor-constants.cjs`),p=require(`./lib/editor/editor-constants.cjs`),m=require(`./lib/message-input/last-active-nodes.cjs`),h=require(`./lib/message-input/message-input-topbar.cjs`),g=require(`./lib/message-input/message-input-link.cjs`);let _=require(`vue`),v=require(`@dialpad/dialtone-icons/vue3`),y=require(`@tiptap/core`);var b={name:`MeetingPill`,components:{NodeViewWrapper:u.NodeViewWrapper,DtItemLayout:i.default,DtIconClose:v.DtIconClose,DtButton:r.default,DtIconVideo:v.DtIconVideo},props:u.nodeViewProps,emits:[`meeting-pill-close`],data(){return{i18n:new n.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t(`DIALTONE_CLOSE_BUTTON`)}},methods:{close(e){let t=this.editor?.storage?.meetingPill?.onClose;t&&typeof t==`function`&&t(e)}}},x={class:`d-recipe-message-input-meeting-pill__icon`},S={class:`d-recipe-message-input-meeting-pill__close`};function C(e,t,n,r,i,a){let o=(0,_.resolveComponent)(`dt-icon-video`),s=(0,_.resolveComponent)(`dt-icon-close`),c=(0,_.resolveComponent)(`dt-button`),l=(0,_.resolveComponent)(`dt-item-layout`),u=(0,_.resolveComponent)(`node-view-wrapper`);return(0,_.openBlock)(),(0,_.createBlock)(u,{class:`d-recipe-message-input-meeting-pill`},{default:(0,_.withCtx)(()=>[(0,_.createVNode)(l,{class:`d-recipe-message-input-meeting-pill__layout`,unstyled:``},{left:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,x,[(0,_.createVNode)(o,{size:`400`})])]),right:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,S,[(0,_.createVNode)(c,{circle:``,importance:`clear`,size:`xs`,"aria-label":a.closeButtonTitle,title:a.closeButtonTitle,onClick:a.close},{icon:(0,_.withCtx)(()=>[(0,_.createVNode)(s,{size:`300`})]),_:1},8,[`aria-label`,`title`,`onClick`])])]),default:(0,_.withCtx)(()=>[(0,_.createTextVNode)(` `+(0,_.toDisplayString)(e.node.attrs.text)+` `,1)]),_:1})]),_:1})}var w=t.t(b,[[`render`,C]]),T=y.Node.create({name:`meetingPill`,atom:!0,group:`inline`,inline:!0,addOptions(){return{onClose:()=>{}}},addStorage(){return{onClose:this.options.onClose}},addNodeView(){return u.VueNodeViewRenderer(w)},addAttributes(){return{text:{default:`Please pass in "text" attribute`}}},parseHTML(){return[{tag:`meeting-pill`}]},renderText(){return`/dpm`},renderHTML({HTMLAttributes:e}){return[`meeting-pill`,(0,y.mergeAttributes)(e)]}}),E={compatConfig:{MODE:3},name:`DtRecipeMessageInput`,components:{DtButton:r.default,DtEmojiPicker:l.t,DtInput:c.default,DtPopover:s.default,DtRecipeMessageInputTopbar:h.default,DtRecipeMessageInputLink:g.default,DtRichTextEditor:d.t,DtTooltip:o.default,DtStack:a.default,DtIconImage:v.DtIconImage,DtIconVerySatisfied:v.DtIconVerySatisfied,DtIconSatisfied:v.DtIconSatisfied,DtIconSend:v.DtIconSend},inheritAttrs:!1,props:{richText:{type:Boolean,default:!0},modelValue:{type:[Object,String],default:``},editable:{type:Boolean,default:!0},inputAriaLabel:{type:String,required:!0,default:``},preventTyping:{type:Boolean,default:!1},inputClass:{type:String,default:``},autoFocus:{type:[Boolean,String,Number],default:!1,validator(e){return typeof e==`string`?f.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},outputFormat:{type:String,default:`json`,validator(e){return f.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(e)}},placeholder:{type:String,default:``},disableSend:{type:Boolean,default:!1},maxHeight:{type:String,default:`unset`},showEmojiPicker:{type:Boolean,default:!0},emojiPickerProps:{type:Object,default:()=>({})},showCharacterLimit:{type:[Boolean,Object],default:()=>({count:1500,warning:500,message:``})},showImagePicker:{type:[Boolean,Object],default:()=>({})},showSend:{type:[Boolean,Object],default:()=>({})},showCancel:{type:[Boolean,Object],default:()=>({})},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},boldButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + B`})},italicButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + I`})},strikeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + Shift + S`})},linkButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + K`,linkPlaceholder:`e.g. https://www.dialpad.com`})},bulletListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + Shift + 8`})},orderedListButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + Shift + 7`})},blockQuoteButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + Shift + B`})},codeButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + E`})},codeBlockButtonOptions:{type:Object,default:()=>({keyboardShortcutText:`Mod + Alt + C`})}},emits:[`submit`,`select-media`,`add-media`,`paste-media`,`cancel`,`skin-tone`,`selected-emoji`,`selected-command`,`meeting-pill-close`,`update:modelValue`,`text-input`,`markdown-input`,`add-emoji`,`emoji-scroll-bottom-reached`],data(){return{lastActiveNodes:m.default,additionalExtensions:[T.configure({onClose:e=>{this.$emit(`meeting-pill-close`,e)}})],internalInputValue:this.modelValue,imagePickerFocus:!1,emojiPickerFocus:!1,emojiPickerOpened:!1,isFocused:!1,linkOptions:{class:`d-link d-c-text d-d-inline-block`},linkDialogOpen:!1,selectedText:``,text:``,hideLinkBubbleMenu:!1,i18n:new n.DialtoneLocalization}},computed:{showSendIcon(){return!this.showSend.text},inputLength(){return this.text.length},displayCharacterLimitWarning(){return!!this.showCharacterLimit&&this.showCharacterLimit.count-this.inputLength<=this.showCharacterLimit.warning},characterLimitTooltipEnabled(){return this.showCharacterLimit.message&&this.showCharacterLimit.count-this.inputLength<0},isSelectionActive(){return this.selectedText,e=>[`bulletList`,`orderedList`].includes(e)?this.richText?this.lastActiveNodes(this.$refs.richTextEditor?.editor?.state,[{type:`bulletList`},{type:`orderedList`}]).includes(e)&&this.isFocused:!1:this.$refs.richTextEditor?.editor?.isActive(e)&&this.isFocused},isSendDisabled(){return this.disableSend||this.showCharacterLimit&&this.inputLength>this.showCharacterLimit.count},emojiPickerHovered(){return this.emojiPickerFocus||this.emojiPickerOpened},sendIconSize(){return`300`},sendButtonLabel(){return this.i18n.$t(`DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL`)},imagePickerButtonLabel(){return this.i18n.$t(`DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL`)},emojiPickerButtonLabel(){return this.i18n.$t(`DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL`)},cancelButtonLabel(){return this.i18n.$t(`DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL`)}},watch:{modelValue(e){this.internalInputValue=e},emojiPickerOpened(e){e||this.$refs.richTextEditor?.focusEditor()}},created(){this.modelValue&&this.outputFormat===`text`?this.internalInputValue=this.modelValue.replace(/\n/g,`<br>`):this.internalInputValue=this.modelValue},methods:{removeClassStyleAttrs:e.removeClassStyleAttrs,addClassStyleAttrs:e.addClassStyleAttrs,linkDialogOpened(e){this.linkDialogOpen=e,e===!0?this.initLinkDialog():(this.hideLinkBubbleMenu=!1,this.$refs.richTextEditor?.focusEditor())},handleTopbarClick(e){let t=this.$refs.richTextEditor?.editor,n={bold:()=>t?.chain().focus().toggleBold().run(),italic:()=>t?.chain().focus().toggleItalic().run(),strike:()=>t?.chain().focus().toggleStrike().run(),bulletList:()=>t?.chain().focus().toggleBulletList().run(),orderedList:()=>t?.chain().focus().toggleOrderedList().run(),blockquote:()=>t?.chain().focus().toggleBlockquote().run(),code:()=>t?.chain().focus().toggleCode().run(),codeBlock:()=>t?.chain().focus().toggleCodeBlock().run()};t&&n[e]&&n[e]()},initLinkDialog(){this.$refs.link.setInitialValues(this.selectedText,this.$refs.richTextEditor?.editor?.getAttributes(`link`)?.href),this.hideLinkBubbleMenu=!0,this.linkDialogOpen=!0},removeLink(){this.$refs.richTextEditor?.removeLink(),this.linkDialogOpen=!1},setLink(e,t){this.$refs.richTextEditor.setLink(t,e,this.linkOptions,p.EDITOR_SUPPORTED_LINK_PROTOCOLS,p.EDITOR_DEFAULT_LINK_PREFIX),this.linkDialogOpen=!1},onMousedown(t){e.returnFirstEl(this.$refs.richTextEditor.$el).querySelector(`.tiptap`).contains(t.target)||(t.preventDefault(),this.$refs.richTextEditor.focusEditor())},onDrop(e){let t=e.dataTransfer,n=Array.from(t.files);this.$emit(`add-media`,n)},onPaste(e){if(e.clipboardData.files.length){e.stopPropagation(),e.preventDefault();let t=[...e.clipboardData.files];this.$emit(`paste-media`,t)}},onSkinTone(e){this.$emit(`skin-tone`,e)},onSelectEmoji(e,t){e&&(e.shift_key||t(),this.$refs.richTextEditor.editor.commands.insertContent({type:`emoji`,attrs:{code:e.shortname,image:e.image,name:e.name}}),this.$emit(`selected-emoji`,e))},onSelectImage(){this.$refs.messageInputImageUpload.$refs.input.click()},onImageUpload(){this.$emit(`select-media`,this.$refs.messageInputImageUpload.$refs.input.files)},toggleEmojiPicker(){this.emojiPickerOpened=!this.emojiPickerOpened},onSend(){this.isSendDisabled||this.$emit(`submit`,this.internalInputValue)},onCancel(){this.$emit(`cancel`)},onInput(e){this.$emit(`update:modelValue`,e)},onTextInput(e){this.text=e,this.$emit(`text-input`,e)},onMarkdownInput(e){this.$emit(`markdown-input`,e)}}},D={class:`d-recipe-message-input__bottom-section`},O={class:`d-recipe-message-input__bottom-section-left`},k={class:`d-recipe-message-input__bottom-section-right`},A={class:`d-recipe-message-input__schedule-message`},j={class:`d-recipe-message-input__sms-count`},M={key:0};function N(e,t,n,r,i,a){let o=(0,_.resolveComponent)(`dt-recipe-message-input-link`),s=(0,_.resolveComponent)(`dt-recipe-message-input-topbar`),c=(0,_.resolveComponent)(`dt-rich-text-editor`),l=(0,_.resolveComponent)(`dt-icon-image`),u=(0,_.resolveComponent)(`dt-button`),d=(0,_.resolveComponent)(`dt-input`),f=(0,_.resolveComponent)(`dt-icon-very-satisfied`),p=(0,_.resolveComponent)(`dt-icon-satisfied`),m=(0,_.resolveComponent)(`dt-emoji-picker`),h=(0,_.resolveComponent)(`dt-popover`),g=(0,_.resolveComponent)(`dt-stack`),v=(0,_.resolveComponent)(`dt-tooltip`),y=(0,_.resolveComponent)(`dt-icon-send`),b=(0,_.resolveDirective)(`dt-scrollbar`),x=(0,_.resolveDirective)(`dt-tooltip`);return(0,_.openBlock)(),(0,_.createElementBlock)(`div`,(0,_.mergeProps)({"data-qa":`dt-recipe-message-input`,role:`presentation`,class:`d-recipe-message-input`},a.addClassStyleAttrs(e.$attrs),{onDragover:t[16]||(t[16]=(0,_.withModifiers)(()=>{},[`prevent`])),onDrop:t[17]||(t[17]=(0,_.withModifiers)((...e)=>a.onDrop&&a.onDrop(...e),[`prevent`])),onPaste:t[18]||(t[18]=(...e)=>a.onPaste&&a.onPaste(...e)),onMousedown:t[19]||(t[19]=(...e)=>a.onMousedown&&a.onMousedown(...e))}),[(0,_.renderSlot)(e.$slots,`top`),n.richText?((0,_.openBlock)(),(0,_.createBlock)(s,{key:0,"bold-button-options":n.boldButtonOptions,"italic-button-options":n.italicButtonOptions,"strike-button-options":n.strikeButtonOptions,"bullet-list-button-options":n.bulletListButtonOptions,"ordered-list-button-options":n.orderedListButtonOptions,"block-quote-button-options":n.blockQuoteButtonOptions,"code-button-options":n.codeButtonOptions,"code-block-button-options":n.codeBlockButtonOptions,"is-selection-active":a.isSelectionActive,onClick:a.handleTopbarClick},{link:(0,_.withCtx)(()=>[(0,_.createVNode)(o,{ref:`link`,open:i.linkDialogOpen,"link-button-options":n.linkButtonOptions,"is-selection-active":a.isSelectionActive,onOpened:a.linkDialogOpened,onSetLink:a.setLink,onRemoveLink:a.removeLink},null,8,[`open`,`link-button-options`,`is-selection-active`,`onOpened`,`onSetLink`,`onRemoveLink`])]),_:1},8,[`bold-button-options`,`italic-button-options`,`strike-button-options`,`bullet-list-button-options`,`ordered-list-button-options`,`block-quote-button-options`,`code-button-options`,`code-block-button-options`,`is-selection-active`,`onClick`])):(0,_.createCommentVNode)(``,!0),(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createElementBlock)(`div`,{class:`d-recipe-message-input__editor-wrapper`,style:(0,_.normalizeStyle)({"max-height":n.maxHeight})},[(0,_.createVNode)(c,(0,_.mergeProps)({ref:`richTextEditor`,modelValue:i.internalInputValue,"onUpdate:modelValue":t[0]||(t[0]=e=>i.internalInputValue=e),"allow-blockquote":n.richText,"allow-bold":n.richText,"allow-bullet-list":n.richText,"allow-code":n.richText,"allow-codeblock":n.richText,"allow-italic":n.richText,"allow-strike":n.richText,"allow-underline":n.richText,"paste-rich-text":n.richText,editable:n.editable,"input-aria-label":n.inputAriaLabel,"input-class":n.inputClass,"output-format":n.outputFormat,"auto-focus":n.autoFocus,link:n.richText,placeholder:n.placeholder,"prevent-typing":n.preventTyping,"mention-suggestion":n.mentionSuggestion,"channel-suggestion":n.channelSuggestion,"slash-command-suggestion":n.slashCommandSuggestion,"additional-extensions":i.additionalExtensions,"hide-link-bubble-menu":i.hideLinkBubbleMenu},a.removeClassStyleAttrs(e.$attrs),{onInput:a.onInput,onTextInput:a.onTextInput,onMarkdownInput:a.onMarkdownInput,onEnter:a.onSend,onSelected:t[1]||(t[1]=e=>i.selectedText=e),onSelectedCommand:t[2]||(t[2]=t=>e.$emit(`selected-command`,t)),onEditLink:a.initLinkDialog,onFocus:t[3]||(t[3]=e=>i.isFocused=!0),onBlur:t[4]||(t[4]=e=>i.isFocused=!1)}),null,16,`modelValue.allow-blockquote.allow-bold.allow-bullet-list.allow-code.allow-codeblock.allow-italic.allow-strike.allow-underline.paste-rich-text.editable.input-aria-label.input-class.output-format.auto-focus.link.placeholder.prevent-typing.mention-suggestion.channel-suggestion.slash-command-suggestion.additional-extensions.hide-link-bubble-menu.onInput.onTextInput.onMarkdownInput.onEnter.onEditLink`.split(`.`))],4)),[[b]]),(0,_.renderSlot)(e.$slots,`middle`),(0,_.createElementVNode)(`section`,D,[(0,_.createElementVNode)(`div`,O,[(0,_.createVNode)(g,{gap:`200`,direction:`row`,class:`d-recipe-message-input__bottom-section-left-stack`},{default:(0,_.withCtx)(()=>[n.showImagePicker?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{key:0,"data-qa":`dt-recipe-message-input-image-btn`,size:`sm`,class:`d-recipe-message-input__button`,kind:`muted`,importance:`clear`,"aria-label":a.imagePickerButtonLabel,onClick:a.onSelectImage,onMouseenter:t[5]||(t[5]=e=>i.imagePickerFocus=!0),onMouseleave:t[6]||(t[6]=e=>i.imagePickerFocus=!1),onFocus:t[7]||(t[7]=e=>i.imagePickerFocus=!0),onBlur:t[8]||(t[8]=e=>i.imagePickerFocus=!1)},{icon:(0,_.withCtx)(()=>[(0,_.createVNode)(l,{size:`300`})]),_:1},8,[`aria-label`,`onClick`])),[[x,a.imagePickerButtonLabel,`top-start`]]):(0,_.createCommentVNode)(``,!0),(0,_.createVNode)(d,{ref:`messageInputImageUpload`,"data-qa":`dt-recipe-message-input-image-input`,accept:`image/*, video/*`,type:`file`,class:`d-recipe-message-input__image-input`,multiple:``,hidden:``,onInput:a.onImageUpload},null,8,[`onInput`]),n.showEmojiPicker?((0,_.openBlock)(),(0,_.createBlock)(h,{key:1,open:i.emojiPickerOpened,"onUpdate:open":t[15]||(t[15]=e=>i.emojiPickerOpened=e),"data-qa":`dt-recipe-message-input-emoji-picker-popover`,"initial-focus-element":`#searchInput`,padding:`none`},{anchor:(0,_.withCtx)(({attrs:e})=>[(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,(0,_.mergeProps)(e,{"data-qa":`dt-recipe-message-input-emoji-picker-btn`,size:`sm`,class:`d-recipe-message-input__button`,kind:`muted`,importance:`clear`,"aria-label":a.emojiPickerButtonLabel,onClick:a.toggleEmojiPicker,onMouseenter:t[9]||(t[9]=e=>i.emojiPickerFocus=!0),onMouseleave:t[10]||(t[10]=e=>i.emojiPickerFocus=!1),onFocus:t[11]||(t[11]=e=>i.emojiPickerFocus=!0),onBlur:t[12]||(t[12]=e=>i.emojiPickerFocus=!1)}),{icon:(0,_.withCtx)(()=>[a.emojiPickerHovered?((0,_.openBlock)(),(0,_.createBlock)(f,{key:0,size:`300`})):((0,_.openBlock)(),(0,_.createBlock)(p,{key:1,size:`300`}))]),_:1},16,[`aria-label`,`onClick`])),[[x,a.emojiPickerButtonLabel]])]),content:(0,_.withCtx)(({close:r})=>[(0,_.createVNode)(m,(0,_.mergeProps)(n.emojiPickerProps,{onAddEmoji:t[13]||(t[13]=t=>e.$emit(`add-emoji`)),onSkinTone:a.onSkinTone,onSelectedEmoji:e=>a.onSelectEmoji(e,r),onScrollBottomReached:t[14]||(t[14]=t=>e.$emit(`emoji-scroll-bottom-reached`))}),null,16,[`onSkinTone`,`onSelectedEmoji`])]),_:1},8,[`open`])):(0,_.createCommentVNode)(``,!0),(0,_.renderSlot)(e.$slots,`emojiGiphyPicker`),(0,_.renderSlot)(e.$slots,`customActionIcons`),(0,_.renderSlot)(e.$slots,`messagePolish`)]),_:3})]),(0,_.createElementVNode)(`div`,k,[(0,_.createVNode)(g,{direction:`row`,gap:`300`},{default:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`div`,A,[(0,_.renderSlot)(e.$slots,`scheduleMessage`)]),(0,_.createElementVNode)(`div`,j,[(0,_.renderSlot)(e.$slots,`smsCount`)]),n.showCharacterLimit?((0,_.openBlock)(),(0,_.createBlock)(v,{key:0,class:`d-recipe-message-input__remaining-char-tooltip`,placement:`top-end`,enabled:a.characterLimitTooltipEnabled,message:n.showCharacterLimit.message,offset:[10,8]},{anchor:(0,_.withCtx)(()=>[(0,_.withDirectives)((0,_.createElementVNode)(`p`,{class:`d-recipe-message-input__remaining-char`,"data-qa":`dt-recipe-message-input-character-limit`},(0,_.toDisplayString)(n.showCharacterLimit.count-a.inputLength),513),[[_.vShow,a.displayCharacterLimitWarning]])]),_:1},8,[`enabled`,`message`])):(0,_.createCommentVNode)(``,!0),n.showCancel?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{key:1,"data-qa":`dt-recipe-message-input-cancel-button`,class:`d-recipe-message-input__button d-recipe-message-input__cancel-button`,size:`sm`,kind:`muted`,importance:`clear`,"aria-label":a.cancelButtonLabel,onClick:a.onCancel},{default:(0,_.withCtx)(()=>[(0,_.createElementVNode)(`p`,null,(0,_.toDisplayString)(a.cancelButtonLabel),1)]),_:1},8,[`aria-label`,`onClick`])),[[x,a.cancelButtonLabel]]):(0,_.createCommentVNode)(``,!0),(0,_.renderSlot)(e.$slots,`sendButton`,{},()=>[n.showSend?(0,_.withDirectives)(((0,_.openBlock)(),(0,_.createBlock)(u,{key:0,"data-qa":`dt-recipe-message-input-send-btn`,size:`sm`,kind:`default`,importance:`primary`,class:(0,_.normalizeClass)([`d-recipe-message-input__button d-recipe-message-input__send-button`,{"d-recipe-message-input__send-button--disabled":a.isSendDisabled,"d-btn--icon-only":a.showSendIcon}]),"aria-label":a.sendButtonLabel,"aria-disabled":a.isSendDisabled,onClick:a.onSend},(0,_.createSlots)({default:(0,_.withCtx)(()=>[n.showSend.text?((0,_.openBlock)(),(0,_.createElementBlock)(`p`,M,(0,_.toDisplayString)(n.showSend.text),1)):(0,_.createCommentVNode)(``,!0)]),_:2},[a.showSendIcon?{name:`icon`,fn:(0,_.withCtx)(()=>[(0,_.renderSlot)(e.$slots,`sendIcon`,{iconSize:a.sendIconSize},()=>[(0,_.createVNode)(y,{size:a.sendIconSize},null,8,[`size`])])]),key:`0`}:void 0]),1032,[`class`,`aria-label`,`aria-disabled`,`onClick`])),[[x,a.sendButtonLabel,`top-end`]]):(0,_.createCommentVNode)(``,!0)])]),_:3})])])],16)}var P=t.t(E,[[`render`,N]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return P}});
2
- //# sourceMappingURL=message_input-AWgvtwMV.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message_input-AWgvtwMV.cjs","names":["Node","VueNodeViewRenderer","MeetingPill"],"sources":["../recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue","../recipes/conversation_view/message_input/extensions/meeting_pill/meeting_pill.js","../recipes/conversation_view/message_input/message_input.vue"],"sourcesContent":["<template>\n <node-view-wrapper class=\"d-recipe-message-input-meeting-pill\">\n <dt-item-layout\n class=\"d-recipe-message-input-meeting-pill__layout\"\n unstyled\n >\n <template #left>\n <div class=\"d-recipe-message-input-meeting-pill__icon\">\n <dt-icon-video\n size=\"400\"\n />\n </div>\n </template>\n {{ node.attrs.text }}\n <template #right>\n <div class=\"d-recipe-message-input-meeting-pill__close\">\n <dt-button\n circle\n importance=\"clear\"\n size=\"xs\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon>\n <dt-icon-close\n size=\"300\"\n />\n </template>\n </dt-button>\n </div>\n </template>\n </dt-item-layout>\n </node-view-wrapper>\n</template>\n\n<script>\nimport { NodeViewWrapper, nodeViewProps } from '@tiptap/vue-3';\nimport { DtItemLayout } from '@/components/item_layout';\nimport { DtIconClose, DtIconVideo } from '@dialpad/dialtone-icons/vue3';\nimport { DtButton } from '@/components/button';\nimport { DialtoneLocalization } from '@/localization';\n\nexport default {\n name: 'MeetingPill',\n\n components: {\n NodeViewWrapper,\n DtItemLayout,\n DtIconClose,\n DtButton,\n DtIconVideo,\n },\n\n props: nodeViewProps,\n\n emits: ['meeting-pill-close'],\n\n data () {\n return {\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n methods: {\n close (e) {\n // Get the callback from extension storage\n const onCloseCallback = this.editor?.storage?.meetingPill?.onClose;\n\n if (onCloseCallback && typeof onCloseCallback === 'function') {\n onCloseCallback(e);\n }\n },\n },\n};\n</script>\n","import { mergeAttributes, Node } from '@tiptap/core';\nimport { VueNodeViewRenderer } from '@tiptap/vue-3';\nimport MeetingPill from './MeetingPill.vue';\n\nexport default Node.create({\n name: 'meetingPill',\n\n atom: true,\n group: 'inline',\n inline: true,\n\n addOptions () {\n return {\n onClose: () => {},\n };\n },\n\n addStorage () {\n return {\n onClose: this.options.onClose,\n };\n },\n\n addNodeView () {\n return VueNodeViewRenderer(MeetingPill);\n },\n\n addAttributes () {\n return {\n text: {\n default: 'Please pass in \"text\" attribute',\n },\n };\n },\n\n parseHTML () {\n return [\n {\n tag: 'meeting-pill',\n },\n ];\n },\n\n renderText () {\n return '/dpm';\n },\n\n renderHTML ({ HTMLAttributes }) {\n return ['meeting-pill', mergeAttributes(HTMLAttributes)];\n },\n});\n","<!-- eslint-disable max-lines -->\n<template>\n <div\n data-qa=\"dt-recipe-message-input\"\n role=\"presentation\"\n class=\"d-recipe-message-input\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n @dragover.prevent\n @drop.prevent=\"onDrop\"\n @paste=\"onPaste\"\n @mousedown=\"onMousedown\"\n >\n <!-- @slot Renders above the input, but still within the borders. -->\n <slot name=\"top\" />\n\n <dt-recipe-message-input-topbar\n v-if=\"richText\"\n :bold-button-options=\"boldButtonOptions\"\n :italic-button-options=\"italicButtonOptions\"\n :strike-button-options=\"strikeButtonOptions\"\n :bullet-list-button-options=\"bulletListButtonOptions\"\n :ordered-list-button-options=\"orderedListButtonOptions\"\n :block-quote-button-options=\"blockQuoteButtonOptions\"\n :code-button-options=\"codeButtonOptions\"\n :code-block-button-options=\"codeBlockButtonOptions\"\n :is-selection-active=\"isSelectionActive\"\n @click=\"handleTopbarClick\"\n >\n <template #link>\n <dt-recipe-message-input-link\n ref=\"link\"\n :open=\"linkDialogOpen\"\n :link-button-options=\"linkButtonOptions\"\n :is-selection-active=\"isSelectionActive\"\n @opened=\"linkDialogOpened\"\n @set-link=\"setLink\"\n @remove-link=\"removeLink\"\n />\n </template>\n </dt-recipe-message-input-topbar>\n <!-- Some wrapper to restrict the height and show the scrollbar -->\n <div\n v-dt-scrollbar\n class=\"d-recipe-message-input__editor-wrapper\"\n :style=\"{ 'max-height': maxHeight }\"\n >\n <dt-rich-text-editor\n ref=\"richTextEditor\"\n v-model=\"internalInputValue\"\n :allow-blockquote=\"richText\"\n :allow-bold=\"richText\"\n :allow-bullet-list=\"richText\"\n :allow-code=\"richText\"\n :allow-codeblock=\"richText\"\n :allow-italic=\"richText\"\n :allow-strike=\"richText\"\n :allow-underline=\"richText\"\n :paste-rich-text=\"richText\"\n :editable=\"editable\"\n :input-aria-label=\"inputAriaLabel\"\n :input-class=\"inputClass\"\n :output-format=\"outputFormat\"\n :auto-focus=\"autoFocus\"\n :link=\"richText\"\n :placeholder=\"placeholder\"\n :prevent-typing=\"preventTyping\"\n :mention-suggestion=\"mentionSuggestion\"\n :channel-suggestion=\"channelSuggestion\"\n :slash-command-suggestion=\"slashCommandSuggestion\"\n :additional-extensions=\"additionalExtensions\"\n :hide-link-bubble-menu=\"hideLinkBubbleMenu\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n @input=\"onInput\"\n @text-input=\"onTextInput\"\n @markdown-input=\"onMarkdownInput\"\n @enter=\"onSend\"\n @selected=\"selectedText = $event\"\n @selected-command=\"$emit('selected-command', $event)\"\n @edit-link=\"initLinkDialog\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n />\n </div>\n <!-- @slot Slot for attachment carousel -->\n <slot name=\"middle\" />\n <!-- Section for the bottom UI -->\n <section class=\"d-recipe-message-input__bottom-section\">\n <!-- Left content -->\n <div class=\"d-recipe-message-input__bottom-section-left\">\n <dt-stack\n gap=\"200\"\n direction=\"row\"\n class=\"d-recipe-message-input__bottom-section-left-stack\"\n >\n <dt-button\n v-if=\"showImagePicker\"\n v-dt-tooltip:top-start=\"imagePickerButtonLabel\"\n data-qa=\"dt-recipe-message-input-image-btn\"\n size=\"sm\"\n class=\"d-recipe-message-input__button\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"imagePickerButtonLabel\"\n @click=\"onSelectImage\"\n @mouseenter=\"imagePickerFocus = true\"\n @mouseleave=\"imagePickerFocus = false\"\n @focus=\"imagePickerFocus = true\"\n @blur=\"imagePickerFocus = false\"\n >\n <template #icon>\n <dt-icon-image size=\"300\" />\n </template>\n </dt-button>\n <dt-input\n ref=\"messageInputImageUpload\"\n data-qa=\"dt-recipe-message-input-image-input\"\n accept=\"image/*, video/*\"\n type=\"file\"\n class=\"d-recipe-message-input__image-input\"\n multiple\n hidden\n @input=\"onImageUpload\"\n />\n <dt-popover\n v-if=\"showEmojiPicker\"\n v-model:open=\"emojiPickerOpened\"\n data-qa=\"dt-recipe-message-input-emoji-picker-popover\"\n initial-focus-element=\"#searchInput\"\n padding=\"none\"\n >\n <template #anchor=\"{ attrs }\">\n <dt-button\n v-dt-tooltip=\"emojiPickerButtonLabel\"\n v-bind=\"attrs\"\n data-qa=\"dt-recipe-message-input-emoji-picker-btn\"\n size=\"sm\"\n class=\"d-recipe-message-input__button\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"emojiPickerButtonLabel\"\n @click=\"toggleEmojiPicker\"\n @mouseenter=\"emojiPickerFocus = true\"\n @mouseleave=\"emojiPickerFocus = false\"\n @focus=\"emojiPickerFocus = true\"\n @blur=\"emojiPickerFocus = false\"\n >\n <template #icon>\n <dt-icon-very-satisfied\n v-if=\"emojiPickerHovered\"\n size=\"300\"\n />\n <dt-icon-satisfied\n v-else\n size=\"300\"\n />\n </template>\n </dt-button>\n </template>\n <template #content=\"{ close }\">\n <dt-emoji-picker\n v-bind=\"emojiPickerProps\"\n @add-emoji=\"$emit('add-emoji')\"\n @skin-tone=\"onSkinTone\"\n @selected-emoji=\"(emoji) => onSelectEmoji(emoji, close)\"\n @scroll-bottom-reached=\"$emit('emoji-scroll-bottom-reached')\"\n />\n </template>\n </dt-popover>\n <!-- @slot Slot for emojiGiphy picker -->\n <slot name=\"emojiGiphyPicker\" />\n <!-- @slot Slot to add extra action icons next to default ones -->\n <slot name=\"customActionIcons\" />\n <!-- @slot Slot for message polish -->\n <slot name=\"messagePolish\" />\n </dt-stack>\n </div>\n <!-- Right content -->\n <div class=\"d-recipe-message-input__bottom-section-right\">\n <dt-stack\n direction=\"row\"\n gap=\"300\"\n >\n <!-- @slot Slot for schedule message -->\n <div class=\"d-recipe-message-input__schedule-message\">\n <slot name=\"scheduleMessage\" />\n </div>\n\n <!-- @slot Slot for sms count -->\n <div class=\"d-recipe-message-input__sms-count\">\n <slot name=\"smsCount\" />\n </div>\n\n <!-- Optionally displayed remaining character counter -->\n <dt-tooltip\n v-if=\"Boolean(showCharacterLimit)\"\n class=\"d-recipe-message-input__remaining-char-tooltip\"\n placement=\"top-end\"\n :enabled=\"characterLimitTooltipEnabled\"\n :message=\"showCharacterLimit.message\"\n :offset=\"[10, 8]\"\n >\n <template #anchor>\n <p\n v-show=\"displayCharacterLimitWarning\"\n class=\"d-recipe-message-input__remaining-char\"\n data-qa=\"dt-recipe-message-input-character-limit\"\n >\n {{ showCharacterLimit.count - inputLength }}\n </p>\n </template>\n </dt-tooltip>\n\n <!-- Cancel button for edit mode -->\n <dt-button\n v-if=\"showCancel\"\n v-dt-tooltip=\"cancelButtonLabel\"\n data-qa=\"dt-recipe-message-input-cancel-button\"\n class=\"d-recipe-message-input__button d-recipe-message-input__cancel-button\"\n size=\"sm\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"cancelButtonLabel\"\n @click=\"onCancel\"\n >\n <p>{{ cancelButtonLabel }}</p>\n </dt-button>\n\n <!-- @slot Slot for sendButton picker -->\n <slot name=\"sendButton\">\n <!-- Send button -->\n <!-- Right positioned UI - send button -->\n <dt-button\n v-if=\"showSend\"\n v-dt-tooltip:top-end=\"sendButtonLabel\"\n data-qa=\"dt-recipe-message-input-send-btn\"\n size=\"sm\"\n kind=\"default\"\n importance=\"primary\"\n :class=\"[\n 'd-recipe-message-input__button d-recipe-message-input__send-button',\n {\n 'd-recipe-message-input__send-button--disabled': isSendDisabled,\n 'd-btn--icon-only': showSendIcon,\n },\n ]\"\n :aria-label=\"sendButtonLabel\"\n :aria-disabled=\"isSendDisabled\"\n @click=\"onSend\"\n >\n <template\n v-if=\"showSendIcon\"\n #icon\n >\n <!-- @slot Slot for send button icon -->\n <slot\n name=\"sendIcon\"\n :icon-size=\"sendIconSize\"\n >\n <dt-icon-send :size=\"sendIconSize\" />\n </slot>\n </template>\n <template v-if=\"showSend.text\">\n <p>{{ showSend.text }}</p>\n </template>\n </dt-button>\n </slot>\n </dt-stack>\n </div>\n </section>\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport {\n DtRichTextEditor,\n RICH_TEXT_EDITOR_OUTPUT_FORMATS,\n RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,\n} from '@/components/rich_text_editor';\nimport lastActiveNodes from './last_active_nodes';\nimport { removeClassStyleAttrs, returnFirstEl, addClassStyleAttrs } from '@/common/utils';\nimport MeetingPill from './extensions/meeting_pill/meeting_pill';\nimport { DtButton } from '@/components/button';\nimport { DtEmojiPicker } from '@/components/emoji_picker';\nimport { DtPopover } from '@/components/popover';\nimport { DtInput } from '@/components/input';\nimport { DtTooltip } from '@/components/tooltip';\nimport { DtStack } from '@/components/stack';\nimport {\n DtIconImage, DtIconVerySatisfied, DtIconSatisfied, DtIconSend,\n} from '@dialpad/dialtone-icons/vue3';\nimport DtRecipeMessageInputTopbar from './message_input_topbar.vue';\nimport DtRecipeMessageInputLink from './message_input_link.vue';\nimport { DialtoneLocalization } from '@/localization';\n\nimport {\n EDITOR_SUPPORTED_LINK_PROTOCOLS,\n EDITOR_DEFAULT_LINK_PREFIX,\n} from '../editor/editor_constants.js';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtRecipeMessageInput',\n\n components: {\n DtButton,\n DtEmojiPicker,\n DtInput,\n DtPopover,\n DtRecipeMessageInputTopbar,\n DtRecipeMessageInputLink,\n DtRichTextEditor,\n DtTooltip,\n DtStack,\n DtIconImage,\n DtIconVerySatisfied,\n DtIconSatisfied,\n DtIconSend,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Displays all the buttons for rich text formatting above the message input, and enables it within the editor.\n * Rich text formatting for the purposes of this component is defined as:\n *\n * bold, italic, strikethrough, lists, blockquotes, inline code tags, and code blocks.\n *\n * If you are sending a message to a phone rather than a Dialpad to Dialpad message, you should have this as false.\n */\n richText: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Value of the input. The object format should match TipTap's JSON\n * document structure: https://tiptap.dev/guide/output#option-1-json\n */\n modelValue: {\n type: [Object, String],\n default: '',\n },\n\n /**\n * Whether the input is editable\n */\n editable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Descriptive label for the input element\n */\n inputAriaLabel: {\n type: String,\n required: true,\n default: '',\n },\n\n /**\n * Prevents the user from typing any further. Deleting text will still work.\n */\n preventTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Additional class name for the input element. Only accepts a String value\n * because this is passed to the editor via options. For multiple classes,\n * join them into one string, e.g. \"d-p8 d-hmx96\"\n */\n inputClass: {\n type: String,\n default: '',\n },\n\n /**\n * Whether the input should receive focus after the component has been\n * mounted. Either one of `start`, `end`, `all` or a Boolean or a Number.\n * - `start` Sets the focus to the beginning of the input\n * - `end` Sets the focus to the end of the input\n * - `all` Selects the whole contents of the input\n * - `Number` Sets the focus to a specific position in the input\n * - `true` Defaults to `start`\n * - `false` Disables autofocus\n * @values true, false, start, end, all, number\n */\n autoFocus: {\n type: [Boolean, String, Number],\n default: false,\n validator (autoFocus) {\n if (typeof autoFocus === 'string') {\n return RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(autoFocus);\n }\n return true;\n },\n },\n\n /**\n * The output format that the editor uses when emitting the \"@input\" event.\n * One of `text`, `json`, `html`, `markdown`. See https://tiptap.dev/guide/output for\n * examples.\n * @values text, json, html, markdown\n */\n outputFormat: {\n type: String,\n default: 'json',\n validator (outputFormat) {\n return RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(outputFormat);\n },\n },\n\n /**\n * Placeholder text\n */\n placeholder: {\n type: String,\n default: '',\n },\n\n /**\n * Disable Send Button\n */\n disableSend: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Content area needs to dynamically adjust height based on the conversation area height.\n * can be vh|px|rem|em|%\n */\n maxHeight: {\n type: String,\n default: 'unset',\n },\n\n // Emoji picker props\n showEmojiPicker: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Props to pass into the emoji picker.\n */\n emojiPickerProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Enable character Limit warning\n */\n showCharacterLimit: {\n type: [Boolean, Object],\n default: () => ({ count: 1500, warning: 500, message: '' }),\n },\n\n showImagePicker: {\n type: [Boolean, Object],\n default: () => ({}),\n },\n\n /**\n * Send button defaults.\n * TODO (Dialtone 10):\n * - Change to `showSendButton`, boolean only.\n */\n showSend: {\n type: [Boolean, Object],\n default: () => ({}),\n },\n\n /**\n * TODO (Dialtone 10):\n * - Add a prop `iconOnly` default: true to control if localized send button text should be shown\n */\n\n /**\n * Cancel button defaults.\n * TODO (Dialtone 10): Change to `showCancelButton`, boolean only.\n */\n showCancel: {\n type: [Boolean, Object],\n default: () => ({}),\n },\n\n /**\n * suggestion object containing the items query function.\n * The valid keys passed into this object can be found here: https://tiptap.dev/api/utilities/suggestion\n *\n * The only required key is the items function which is used to query the contacts for suggestion.\n * items({ query }) => { return [ContactObject]; }\n * ContactObject format:\n * { name: string, avatarSrc: string, id: string }\n *\n * When null, it does not add the plugin.\n */\n mentionSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * suggestion object containing the items query function.\n * The valid keys passed into this object can be found here: https://tiptap.dev/api/utilities/suggestion\n *\n * The only required key is the items function which is used to query the channels for suggestion.\n * items({ query }) => { return [ChannelObject]; }\n * ChannelObject format:\n * { name: string, id: string, locked: boolean }\n *\n * When null, it does not add the plugin. Setting locked to true will display a lock rather than hash.\n */\n channelSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * suggestion object containing the items query function.\n * The valid keys passed into this object can be found here: https://tiptap.dev/api/utilities/suggestion\n *\n * The only required key is the items function which is used to query the slash commands for suggestion.\n * items({ query }) => { return [SlashCommandObject]; }\n * SlashCommandObject format:\n * { command: string, description: string, parametersExample?: string }\n * The \"parametersExample\" parameter is optional, and describes an example\n * of the parameters that command can take.\n *\n * When null, it does not add the plugin.\n */\n slashCommandSuggestion: {\n type: Object,\n default: null,\n },\n\n /**\n * descriptive text fields for the bold button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n boldButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + B',\n }),\n },\n\n /**\n * descriptive text fields for the italic button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n italicButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + I',\n }),\n },\n\n /**\n * descriptive text fields for the strikethrough button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n strikeButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + S',\n }),\n },\n\n /**\n * descriptive text fields for the link button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n linkButtonOptions: {\n type: Object,\n default: () => ({\n // TODO: implement mod k\n keyboardShortcutText: 'Mod + K',\n linkPlaceholder: 'e.g. https://www.dialpad.com',\n }),\n },\n\n /**\n * descriptive text fields for the bullet list button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n bulletListButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + 8',\n }),\n },\n\n /**\n * descriptive text fields for the ordered list button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n orderedListButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + 7',\n }),\n },\n\n /**\n * descriptive text fields for the italic button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n blockQuoteButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Shift + B',\n }),\n },\n\n /**\n * descriptive text fields for the code button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n codeButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + E',\n }),\n },\n\n /**\n * descriptive text fields for the code block button\n *\n * object format:\n * { keyboardShortcutText: string }\n */\n codeBlockButtonOptions: {\n type: Object,\n default: () => ({\n keyboardShortcutText: 'Mod + Alt + C',\n }),\n },\n },\n\n emits: [\n /**\n * Fires when send button is clicked\n *\n * @event submit\n * @type {String}\n */\n 'submit',\n\n /**\n * Fires when media is selected from image button\n *\n * @event select-media\n * @type {Array}\n */\n 'select-media',\n\n /**\n * Fires when media is dropped into the message input\n *\n * @event add-media\n * @type {Array}\n */\n 'add-media',\n\n /**\n * Fires when media is pasted into the message input\n *\n * @event paste-media\n * @type {Array}\n */\n 'paste-media',\n\n /**\n * Fires when cancel button is pressed (only on edit mode)\n *\n * @event cancel\n * @type {Boolean}\n */\n 'cancel',\n\n /**\n * Fires when skin tone is selected from the emoji picker\n *\n * @event skin-tone\n * @type {String}\n */\n 'skin-tone',\n\n /**\n * Fires when emoji is selected from the emoji picker\n *\n * @event selected-emoji\n * @type {String}\n */\n 'selected-emoji',\n\n /**\n * Fires when a slash command is selected\n *\n * @event selected-command\n * @type {String}\n */\n 'selected-command',\n\n /**\n * Fires when meeting pill is closed\n *\n * @event meeting-pill-close\n * @type {String}\n */\n 'meeting-pill-close',\n\n /**\n * Event to sync the value with the parent\n * @event update:modelValue\n * @type {String|JSON}\n */\n 'update:modelValue',\n\n /**\n * Emitted when input changes, returns text content only\n * @event text-input\n * @type {String}\n */\n 'text-input',\n\n /**\n * Emitted when input changes, returns markdown content only\n * @event markdown-input\n * @type {String}\n */\n 'markdown-input',\n\n /**\n * Emitted when the 'Add emoji' button is clicked\n * @event add-emoji\n * @type {Boolean}\n */\n 'add-emoji',\n\n /**\n * Emitted when the emoji picker scroll reaches the bottom\n * @event emoji-scroll-bottom-reached\n */\n 'emoji-scroll-bottom-reached',\n ],\n\n data () {\n return {\n // If an ordered list is nested within an unordered list, we only want to show the currently selected list as\n // active. This function performs the logic to determine the farthest active node from the root.\n lastActiveNodes,\n additionalExtensions: [\n MeetingPill.configure({\n onClose: (event) => {\n this.$emit('meeting-pill-close', event);\n },\n }),\n ],\n\n internalInputValue: this.modelValue, // internal input content\n imagePickerFocus: false,\n emojiPickerFocus: false,\n emojiPickerOpened: false,\n isFocused: false,\n linkOptions: {\n class: 'd-link d-c-text d-d-inline-block',\n },\n\n linkDialogOpen: false,\n selectedText: '',\n text: '',\n hideLinkBubbleMenu: false,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n showSendIcon () {\n return !this.showSend.text;\n },\n\n inputLength () {\n return this.text.length;\n },\n\n displayCharacterLimitWarning () {\n return (\n Boolean(this.showCharacterLimit) &&\n this.showCharacterLimit.count - this.inputLength <=\n this.showCharacterLimit.warning\n );\n },\n\n characterLimitTooltipEnabled () {\n return (\n this.showCharacterLimit.message &&\n this.showCharacterLimit.count - this.inputLength < 0\n );\n },\n\n // Returns a new function reference when selectedText changes, which causes the topbar\n // to re-render (prop update) without destroying/recreating it (no key change).\n isSelectionActive () {\n // eslint-disable-next-line no-unused-vars\n const _dep = this.selectedText;\n return (type) => {\n if (['bulletList', 'orderedList'].includes(type)) {\n if (!this.richText) return false;\n return this.lastActiveNodes(this.$refs.richTextEditor?.editor?.state, [{ type: 'bulletList' }, { type: 'orderedList' }]).includes(type) && this.isFocused;\n }\n return this.$refs.richTextEditor?.editor?.isActive(type) && this.isFocused;\n };\n },\n\n isSendDisabled () {\n return (\n this.disableSend ||\n (this.showCharacterLimit &&\n this.inputLength > this.showCharacterLimit.count)\n );\n },\n\n emojiPickerHovered () {\n return this.emojiPickerFocus || this.emojiPickerOpened;\n },\n\n sendIconSize () {\n return '300';\n },\n\n sendButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_SEND_BUTTON_ARIA_LABEL');\n },\n\n imagePickerButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_IMAGE_PICKER_BUTTON_ARIA_LABEL');\n },\n\n emojiPickerButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_EMOJI_PICKER_BUTTON_ARIA_LABEL');\n },\n\n cancelButtonLabel () {\n return this.i18n.$t('DIALTONE_MESSAGE_INPUT_CANCEL_BUTTON_ARIA_LABEL');\n },\n },\n\n watch: {\n modelValue (newValue) {\n this.internalInputValue = newValue;\n },\n\n emojiPickerOpened (newValue) {\n if (!newValue) {\n this.$refs.richTextEditor?.focusEditor();\n }\n },\n },\n\n created () {\n if (this.modelValue && this.outputFormat === 'text') {\n this.internalInputValue = this.modelValue.replace(/\\n/g, '<br>');\n } else {\n this.internalInputValue = this.modelValue;\n }\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n\n linkDialogOpened (value) {\n this.linkDialogOpen = value;\n if (value === true) {\n this.initLinkDialog();\n } else {\n this.hideLinkBubbleMenu = false;\n this.$refs.richTextEditor?.focusEditor();\n }\n },\n\n handleTopbarClick (type) {\n const editor = this.$refs.richTextEditor?.editor;\n // Key is the name returned in the event, value is the name of the TipTap command function to run.\n const typeToCommandMap = {\n bold: () => editor?.chain().focus().toggleBold().run(),\n italic: () => editor?.chain().focus().toggleItalic().run(),\n strike: () => editor?.chain().focus().toggleStrike().run(),\n bulletList: () => editor?.chain().focus().toggleBulletList().run(),\n orderedList: () => editor?.chain().focus().toggleOrderedList().run(),\n blockquote: () => editor?.chain().focus().toggleBlockquote().run(),\n code: () => editor?.chain().focus().toggleCode().run(),\n codeBlock: () => editor?.chain().focus().toggleCodeBlock().run(),\n };\n\n if (editor && typeToCommandMap[type]) {\n typeToCommandMap[type]();\n }\n },\n\n initLinkDialog () {\n this.$refs.link.setInitialValues(this.selectedText, this.$refs.richTextEditor?.editor?.getAttributes('link')?.href);\n this.hideLinkBubbleMenu = true;\n this.linkDialogOpen = true;\n },\n\n removeLink () {\n this.$refs.richTextEditor?.removeLink();\n this.linkDialogOpen = false;\n },\n\n setLink (linkText, linkInput) {\n this.$refs.richTextEditor.setLink(\n linkInput, linkText, this.linkOptions, EDITOR_SUPPORTED_LINK_PROTOCOLS, EDITOR_DEFAULT_LINK_PREFIX,\n );\n this.linkDialogOpen = false;\n },\n\n // Mousedown instead of click because it fires before the blur event.\n onMousedown (e) {\n const isWithinInput = returnFirstEl(this.$refs.richTextEditor.$el)\n .querySelector('.tiptap')\n .contains(e.target);\n\n // If the click is not within the tiptap rich text editor input itself, but still within the wrapping div,\n // focus the editor.\n if (!isWithinInput) {\n // Prevent default prevents blurring the rich text editor input when it is already focused.\n e.preventDefault();\n this.$refs.richTextEditor.focusEditor();\n }\n },\n\n onDrop (e) {\n const dt = e.dataTransfer;\n const files = Array.from(dt.files);\n this.$emit('add-media', files);\n },\n\n onPaste (e) {\n if (e.clipboardData.files.length) {\n e.stopPropagation();\n e.preventDefault();\n const files = [...e.clipboardData.files];\n this.$emit('paste-media', files);\n }\n },\n\n onSkinTone (skinTone) {\n this.$emit('skin-tone', skinTone);\n },\n\n onSelectEmoji (emoji, close) {\n if (!emoji) {\n return;\n }\n\n if (!emoji.shift_key) {\n close();\n }\n\n // Insert emoji into the editor\n this.$refs.richTextEditor.editor.commands.insertContent({\n type: 'emoji',\n attrs: {\n code: emoji.shortname,\n image: emoji.image,\n name: emoji.name,\n },\n });\n this.$emit('selected-emoji', emoji);\n },\n\n onSelectImage () {\n this.$refs.messageInputImageUpload.$refs.input.click();\n },\n\n onImageUpload () {\n this.$emit(\n 'select-media',\n this.$refs.messageInputImageUpload.$refs.input.files,\n );\n },\n\n toggleEmojiPicker () {\n this.emojiPickerOpened = !this.emojiPickerOpened;\n },\n\n onSend () {\n if (this.isSendDisabled) {\n return;\n }\n this.$emit('submit', this.internalInputValue);\n },\n\n onCancel () {\n this.$emit('cancel');\n },\n\n onInput (event) {\n this.$emit('update:modelValue', event);\n },\n\n onTextInput (event) {\n this.text = event;\n this.$emit('text-input', event);\n },\n\n onMarkdownInput (event) {\n this.$emit('markdown-input', event);\n },\n },\n};\n</script>\n"],"mappings":"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"}