@dialpad/dialtone-vue 3.220.0-next.4 → 3.220.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1010) hide show
  1. package/dist/attachment_carousel-BHxR7A76.cjs +2 -0
  2. package/dist/attachment_carousel-BHxR7A76.cjs.map +1 -0
  3. package/dist/{attachment_carousel-1qxTI-NN.js → attachment_carousel-CouFqFMw.js} +5 -5
  4. package/dist/attachment_carousel-CouFqFMw.js.map +1 -0
  5. package/dist/{combobox-BQBKrDTW.js → combobox-DgClbLOg.js} +35 -36
  6. package/dist/combobox-DgClbLOg.js.map +1 -0
  7. package/dist/combobox-DhjZxfUw.cjs +3 -0
  8. package/dist/combobox-DhjZxfUw.cjs.map +1 -0
  9. package/dist/common/constants/index.cjs +1 -1
  10. package/dist/common/constants/index.cjs.map +1 -1
  11. package/dist/common/constants/index.d.ts +21 -27
  12. package/dist/common/constants/index.d.ts.map +1 -1
  13. package/dist/common/constants/index.js +14 -25
  14. package/dist/common/constants/index.js.map +1 -1
  15. package/dist/common/mixins/index.cjs +1 -1
  16. package/dist/common/mixins/index.d.ts +0 -1
  17. package/dist/common/mixins/index.js +1 -2
  18. package/dist/common/mixins/input-group.cjs +1 -1
  19. package/dist/common/mixins/input-group.cjs.map +1 -1
  20. package/dist/common/mixins/input-group.js +2 -2
  21. package/dist/common/mixins/input-group.js.map +1 -1
  22. package/dist/common/mixins/input.cjs +1 -1
  23. package/dist/common/mixins/input.cjs.map +1 -1
  24. package/dist/common/mixins/input.d.ts +33 -27
  25. package/dist/common/mixins/input.d.ts.map +1 -1
  26. package/dist/common/mixins/input.js +8 -0
  27. package/dist/common/mixins/input.js.map +1 -1
  28. package/dist/common/sr_only_close_button.vue.d.ts +7 -98
  29. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  30. package/dist/common/utils/index.cjs +1 -1
  31. package/dist/common/utils/index.cjs.map +1 -1
  32. package/dist/common/utils/index.d.ts +8 -2
  33. package/dist/common/utils/index.d.ts.map +1 -1
  34. package/dist/common/utils/index.js +88 -79
  35. package/dist/common/utils/index.js.map +1 -1
  36. package/dist/component-documentation.json +1 -1
  37. package/dist/components/avatar/avatar.vue.d.ts +27 -85
  38. package/dist/components/avatar/avatar.vue.d.ts.map +1 -1
  39. package/dist/components/avatar/avatar_constants.d.ts +29 -86
  40. package/dist/components/avatar/avatar_constants.d.ts.map +1 -1
  41. package/dist/components/avatar/index.d.ts +1 -1
  42. package/dist/components/badge/badge.vue.d.ts +1 -19
  43. package/dist/components/badge/badge.vue.d.ts.map +1 -1
  44. package/dist/components/badge/badge_constants.d.ts +1 -1
  45. package/dist/components/banner/banner.vue.d.ts +50 -447
  46. package/dist/components/banner/banner.vue.d.ts.map +1 -1
  47. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts +17 -27
  48. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  49. package/dist/components/breadcrumbs/breadcrumbs.vue.d.ts +16 -35
  50. package/dist/components/button/button.vue.d.ts +7 -98
  51. package/dist/components/button/button.vue.d.ts.map +1 -1
  52. package/dist/components/button/button_constants.d.ts +20 -29
  53. package/dist/components/button/button_constants.d.ts.map +1 -1
  54. package/dist/components/card/card.vue.d.ts +11 -2
  55. package/dist/components/card/card.vue.d.ts.map +1 -1
  56. package/dist/components/checkbox/checkbox.vue.d.ts +11 -183
  57. package/dist/components/checkbox/checkbox.vue.d.ts.map +1 -1
  58. package/dist/components/checkbox/checkbox_constants.d.ts +2 -2
  59. package/dist/components/checkbox_group/checkbox_group.vue.d.ts +15 -145
  60. package/dist/components/chip/chip.vue.d.ts +16 -125
  61. package/dist/components/chip/chip.vue.d.ts.map +1 -1
  62. package/dist/components/chip/chip_constants.d.ts +21 -24
  63. package/dist/components/chip/chip_constants.d.ts.map +1 -1
  64. package/dist/components/codeblock/codeblock.vue.d.ts +2 -25
  65. package/dist/components/codeblock/codeblock.vue.d.ts.map +1 -1
  66. package/dist/components/collapsible/collapsible.vue.d.ts +11 -102
  67. package/dist/components/collapsible/collapsible.vue.d.ts.map +1 -1
  68. package/dist/components/combobox/combobox.vue.d.ts +85 -160
  69. package/dist/components/combobox/combobox.vue.d.ts.map +1 -1
  70. package/dist/components/combobox/combobox_empty-list.vue.d.ts +28 -61
  71. package/dist/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  72. package/dist/components/combobox/combobox_loading-list.vue.d.ts +48 -90
  73. package/dist/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  74. package/dist/components/combobox_multi_select/combobox_multi_select.vue.d.ts.map +1 -1
  75. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts +13 -16
  76. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
  77. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts +196 -610
  78. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  79. package/dist/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  80. package/dist/components/dropdown/dropdown.vue.d.ts +28 -292
  81. package/dist/components/dropdown/dropdown.vue.d.ts.map +1 -1
  82. package/dist/components/emoji/emoji.vue.d.ts +20 -29
  83. package/dist/components/emoji_picker/emoji_picker.vue.d.ts +25 -225
  84. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts +25 -225
  85. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  86. package/dist/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  87. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +20 -29
  88. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  89. package/dist/components/empty_state/empty_state.vue.d.ts.map +1 -1
  90. package/dist/components/empty_state/empty_state_constants.d.ts +31 -52
  91. package/dist/components/empty_state/empty_state_constants.d.ts.map +1 -1
  92. package/dist/components/hovercard/hovercard.vue.d.ts +57 -596
  93. package/dist/components/hovercard/hovercard.vue.d.ts.map +1 -1
  94. package/dist/components/image_viewer/image_viewer.vue.d.ts +17 -224
  95. package/dist/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  96. package/dist/components/input/input.vue.d.ts +21 -214
  97. package/dist/components/input/input.vue.d.ts.map +1 -1
  98. package/dist/components/input/input_constants.d.ts +48 -46
  99. package/dist/components/input/input_constants.d.ts.map +1 -1
  100. package/dist/components/input_group/input_group.vue.d.ts +0 -142
  101. package/dist/components/input_group/input_group.vue.d.ts.map +1 -1
  102. package/dist/components/item_layout/item_layout.vue.d.ts +27 -58
  103. package/dist/components/item_layout/item_layout.vue.d.ts.map +1 -1
  104. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +0 -142
  105. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  106. package/dist/components/link/index.d.ts +1 -1
  107. package/dist/components/link/link.vue.d.ts +6 -26
  108. package/dist/components/link/link_constants.d.ts +4 -6
  109. package/dist/components/link/link_constants.d.ts.map +1 -1
  110. package/dist/components/list_item/list_item.vue.d.ts +28 -61
  111. package/dist/components/list_item/list_item.vue.d.ts.map +1 -1
  112. package/dist/components/modal/modal.vue.d.ts +108 -411
  113. package/dist/components/modal/modal.vue.d.ts.map +1 -1
  114. package/dist/components/modal/modal_constants.d.ts +6 -7
  115. package/dist/components/motion_text/motion_text_constants.d.ts +23 -27
  116. package/dist/components/motion_text/motion_text_constants.d.ts.map +1 -1
  117. package/dist/components/notice/notice.vue.d.ts +50 -447
  118. package/dist/components/notice/notice.vue.d.ts.map +1 -1
  119. package/dist/components/notice/notice_action.vue.d.ts +20 -211
  120. package/dist/components/notice/notice_action.vue.d.ts.map +1 -1
  121. package/dist/components/notice/notice_constants.d.ts.map +1 -1
  122. package/dist/components/notice/notice_content.vue.d.ts +9 -170
  123. package/dist/components/notice/notice_content.vue.d.ts.map +1 -1
  124. package/dist/components/notice/notice_icon.vue.d.ts +2 -11
  125. package/dist/components/notice/notice_icon.vue.d.ts.map +1 -1
  126. package/dist/components/pagination/pagination.vue.d.ts +10 -101
  127. package/dist/components/pagination/pagination.vue.d.ts.map +1 -1
  128. package/dist/components/popover/popover.vue.d.ts +23 -267
  129. package/dist/components/popover/popover.vue.d.ts.map +1 -1
  130. package/dist/components/popover/popover_header_footer.vue.d.ts +7 -107
  131. package/dist/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  132. package/dist/components/radio/radio.vue.d.ts +8 -179
  133. package/dist/components/radio/radio.vue.d.ts.map +1 -1
  134. package/dist/components/radio/radio_constants.d.ts +2 -2
  135. package/dist/components/radio_group/radio_group.vue.d.ts +2 -143
  136. package/dist/components/resizable/resizable_constants.d.ts.map +1 -1
  137. package/dist/components/resizable/resizable_panel.vue.d.ts +0 -2
  138. package/dist/components/resizable/resizable_panel.vue.d.ts.map +1 -1
  139. package/dist/components/resizable/resizable_utils.d.ts.map +1 -1
  140. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +6 -26
  141. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  142. package/dist/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  143. package/dist/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +20 -29
  144. package/dist/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +20 -29
  145. package/dist/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +6 -26
  146. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +27 -227
  147. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  148. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +1 -144
  149. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  150. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +28 -61
  151. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  152. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +51 -597
  153. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  154. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts +15 -105
  155. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  156. package/dist/components/root_layout/root_layout.vue.d.ts +2 -2
  157. package/dist/components/root_layout/root_layout_constants.d.ts +0 -2
  158. package/dist/components/root_layout/root_layout_constants.d.ts.map +1 -1
  159. package/dist/components/scroller/modules/core_scroller.vue.d.ts +4 -4
  160. package/dist/components/scroller/modules/dynamic_scroller.vue.d.ts +24 -24
  161. package/dist/components/scroller/scroller.vue.d.ts +34 -34
  162. package/dist/components/select_menu/select_menu.vue.d.ts +34 -190
  163. package/dist/components/select_menu/select_menu.vue.d.ts.map +1 -1
  164. package/dist/components/select_menu/select_menu_constants.d.ts +9 -14
  165. package/dist/components/select_menu/select_menu_constants.d.ts.map +1 -1
  166. package/dist/components/skeleton/skeleton-list-item.vue.d.ts +12 -15
  167. package/dist/components/skeleton/skeleton-paragraph.vue.d.ts +2 -5
  168. package/dist/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  169. package/dist/components/skeleton/skeleton-text.vue.d.ts +1 -4
  170. package/dist/components/skeleton/skeleton.vue.d.ts +20 -29
  171. package/dist/components/skeleton/skeleton_constants.d.ts +13 -18
  172. package/dist/components/skeleton/skeleton_constants.d.ts.map +1 -1
  173. package/dist/components/split_button/{split_button-start.vue.d.ts → split_button-alpha.vue.d.ts} +11 -170
  174. package/dist/components/split_button/split_button-alpha.vue.d.ts.map +1 -0
  175. package/dist/components/split_button/{split_button-end.vue.d.ts → split_button-omega.vue.d.ts} +13 -109
  176. package/dist/components/split_button/split_button-omega.vue.d.ts.map +1 -0
  177. package/dist/components/split_button/split_button.vue.d.ts +87 -809
  178. package/dist/components/split_button/split_button.vue.d.ts.map +1 -1
  179. package/dist/components/split_button/split_button_constants.d.ts +7 -12
  180. package/dist/components/split_button/split_button_constants.d.ts.map +1 -1
  181. package/dist/components/stack/stack_constants.d.ts.map +1 -1
  182. package/dist/components/tab/index.d.ts +1 -1
  183. package/dist/components/tab/tab.vue.d.ts +11 -131
  184. package/dist/components/tab/tab.vue.d.ts.map +1 -1
  185. package/dist/components/tab/tab_group.vue.d.ts +13 -139
  186. package/dist/components/tab/tab_group.vue.d.ts.map +1 -1
  187. package/dist/components/tab/tabs_constants.d.ts +5 -23
  188. package/dist/components/tab/tabs_constants.d.ts.map +1 -1
  189. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts +45 -442
  190. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  191. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts +2 -11
  192. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  193. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts +48 -445
  194. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  195. package/dist/components/toast/toast.vue.d.ts +212 -1836
  196. package/dist/components/toast/toast.vue.d.ts.map +1 -1
  197. package/dist/components/toggle/toggle.vue.d.ts +21 -20
  198. package/dist/components/toggle/toggle.vue.d.ts.map +1 -1
  199. package/dist/components/toggle/toggle_constants.d.ts +4 -6
  200. package/dist/components/toggle/toggle_constants.d.ts.map +1 -1
  201. package/dist/components/tooltip/tooltip.vue.d.ts +8 -43
  202. package/dist/components/tooltip/tooltip.vue.d.ts.map +1 -1
  203. package/dist/datepicker-DprRX9AH.cjs +2 -0
  204. package/dist/datepicker-DprRX9AH.cjs.map +1 -0
  205. package/dist/{datepicker-B2nhxiCg.js → datepicker-LVDRC6Lf.js} +24 -20
  206. package/dist/datepicker-LVDRC6Lf.js.map +1 -0
  207. package/dist/dialtone-vue.cjs +1 -1
  208. package/dist/dialtone-vue.css +1 -1
  209. package/dist/dialtone-vue.js +151 -174
  210. package/dist/directives/tooltip_directive/tooltip.d.ts.map +1 -1
  211. package/dist/emoji_picker-Cl-T4BXK.cjs +2 -0
  212. package/dist/emoji_picker-Cl-T4BXK.cjs.map +1 -0
  213. package/dist/{emoji_picker-BjgAohQy.js → emoji_picker-tVHfpHDk.js} +8 -9
  214. package/dist/emoji_picker-tVHfpHDk.js.map +1 -0
  215. package/dist/index.d.ts +0 -9
  216. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  217. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  218. package/dist/lib/attachment-carousel/index.cjs +1 -1
  219. package/dist/lib/attachment-carousel/index.js +1 -1
  220. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  221. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  222. package/dist/lib/avatar/avatar-constants.js +24 -111
  223. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  224. package/dist/lib/avatar/avatar.cjs +1 -1
  225. package/dist/lib/avatar/avatar.cjs.map +1 -1
  226. package/dist/lib/avatar/avatar.js +84 -145
  227. package/dist/lib/avatar/avatar.js.map +1 -1
  228. package/dist/lib/avatar/index.cjs +1 -1
  229. package/dist/lib/avatar/index.js +3 -3
  230. package/dist/lib/badge/badge-constants.cjs +1 -1
  231. package/dist/lib/badge/badge-constants.cjs.map +1 -1
  232. package/dist/lib/badge/badge-constants.js +1 -1
  233. package/dist/lib/badge/badge-constants.js.map +1 -1
  234. package/dist/lib/badge/badge.cjs +1 -1
  235. package/dist/lib/badge/badge.cjs.map +1 -1
  236. package/dist/lib/badge/badge.js +23 -51
  237. package/dist/lib/badge/badge.js.map +1 -1
  238. package/dist/lib/banner/banner.cjs +2 -2
  239. package/dist/lib/banner/banner.cjs.map +1 -1
  240. package/dist/lib/banner/banner.js +24 -71
  241. package/dist/lib/banner/banner.js.map +1 -1
  242. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  243. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  244. package/dist/lib/breadcrumbs/breadcrumb-item.js +38 -29
  245. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  246. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  247. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  248. package/dist/lib/breadcrumbs/breadcrumbs.js +2 -10
  249. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  250. package/dist/lib/button/button-constants.cjs +1 -1
  251. package/dist/lib/button/button-constants.cjs.map +1 -1
  252. package/dist/lib/button/button-constants.js +3 -17
  253. package/dist/lib/button/button-constants.js.map +1 -1
  254. package/dist/lib/button/button.cjs +1 -1
  255. package/dist/lib/button/button.cjs.map +1 -1
  256. package/dist/lib/button/button.js +19 -162
  257. package/dist/lib/button/button.js.map +1 -1
  258. package/dist/lib/button-group/button-group.cjs.map +1 -1
  259. package/dist/lib/button-group/button-group.js.map +1 -1
  260. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  261. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  262. package/dist/lib/callbar-button/callbar-button.js +27 -26
  263. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  264. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  265. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  266. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +36 -45
  267. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  268. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  269. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  270. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +38 -47
  271. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  272. package/dist/lib/callbox/callbox.cjs +1 -1
  273. package/dist/lib/callbox/callbox.cjs.map +1 -1
  274. package/dist/lib/callbox/callbox.js +8 -8
  275. package/dist/lib/callbox/callbox.js.map +1 -1
  276. package/dist/lib/card/card.cjs +1 -1
  277. package/dist/lib/card/card.cjs.map +1 -1
  278. package/dist/lib/card/card.js +18 -10
  279. package/dist/lib/card/card.js.map +1 -1
  280. package/dist/lib/checkbox/checkbox-constants.cjs +1 -1
  281. package/dist/lib/checkbox/checkbox-constants.cjs.map +1 -1
  282. package/dist/lib/checkbox/checkbox-constants.js +2 -2
  283. package/dist/lib/checkbox/checkbox-constants.js.map +1 -1
  284. package/dist/lib/checkbox/checkbox.cjs +1 -1
  285. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  286. package/dist/lib/checkbox/checkbox.js +30 -80
  287. package/dist/lib/checkbox/checkbox.js.map +1 -1
  288. package/dist/lib/checkbox-group/checkbox-group.cjs +1 -1
  289. package/dist/lib/checkbox-group/checkbox-group.cjs.map +1 -1
  290. package/dist/lib/checkbox-group/checkbox-group.js +12 -6
  291. package/dist/lib/checkbox-group/checkbox-group.js.map +1 -1
  292. package/dist/lib/checkbox-group/checkboxes-decorator.cjs +1 -1
  293. package/dist/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
  294. package/dist/lib/checkbox-group/checkboxes-decorator.js +1 -0
  295. package/dist/lib/checkbox-group/checkboxes-decorator.js.map +1 -1
  296. package/dist/lib/chip/chip-constants.cjs +1 -1
  297. package/dist/lib/chip/chip-constants.cjs.map +1 -1
  298. package/dist/lib/chip/chip-constants.js +0 -9
  299. package/dist/lib/chip/chip-constants.js.map +1 -1
  300. package/dist/lib/chip/chip.cjs +1 -1
  301. package/dist/lib/chip/chip.cjs.map +1 -1
  302. package/dist/lib/chip/chip.js +26 -43
  303. package/dist/lib/chip/chip.js.map +1 -1
  304. package/dist/lib/codeblock/codeblock.cjs +2 -1
  305. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  306. package/dist/lib/codeblock/codeblock.js +14 -25
  307. package/dist/lib/codeblock/codeblock.js.map +1 -1
  308. package/dist/lib/collapsible/collapsible.cjs +1 -1
  309. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  310. package/dist/lib/collapsible/collapsible.js +2 -2
  311. package/dist/lib/collapsible/collapsible.js.map +1 -1
  312. package/dist/lib/combobox/combobox.cjs +1 -1
  313. package/dist/lib/combobox/combobox.js +1 -1
  314. package/dist/lib/combobox/index.cjs +1 -1
  315. package/dist/lib/combobox/index.js +1 -1
  316. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
  317. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  318. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +0 -6
  319. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  320. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  321. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  322. package/dist/lib/combobox-multi-select/combobox-multi-select.js +48 -69
  323. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  324. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  325. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  326. package/dist/lib/combobox-with-popover/combobox-with-popover.js +47 -64
  327. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  328. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  329. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  330. package/dist/lib/contact-centers-row/contact-centers-row.js +45 -51
  331. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  332. package/dist/lib/contact-info/contact-info.cjs +1 -1
  333. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  334. package/dist/lib/contact-info/contact-info.js +8 -8
  335. package/dist/lib/contact-info/contact-info.js.map +1 -1
  336. package/dist/lib/contact-row/contact-row.cjs +1 -1
  337. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  338. package/dist/lib/contact-row/contact-row.js +3 -3
  339. package/dist/lib/contact-row/contact-row.js.map +1 -1
  340. package/dist/lib/datepicker/datepicker.cjs +1 -1
  341. package/dist/lib/datepicker/datepicker.js +1 -1
  342. package/dist/lib/datepicker/index.cjs +1 -1
  343. package/dist/lib/datepicker/index.js +1 -1
  344. package/dist/lib/description-list/description-list.cjs +1 -1
  345. package/dist/lib/description-list/description-list.cjs.map +1 -1
  346. package/dist/lib/description-list/description-list.js +1 -1
  347. package/dist/lib/description-list/description-list.js.map +1 -1
  348. package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
  349. package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
  350. package/dist/lib/dropdown/dropdown-constants.js +2 -2
  351. package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
  352. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  353. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  354. package/dist/lib/dropdown/dropdown-list.js +16 -28
  355. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  356. package/dist/lib/dropdown/dropdown.cjs +1 -1
  357. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  358. package/dist/lib/dropdown/dropdown.js +29 -43
  359. package/dist/lib/dropdown/dropdown.js.map +1 -1
  360. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  361. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  362. package/dist/lib/editor/EditorToolbarButton.js +1 -1
  363. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  364. package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
  365. package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
  366. package/dist/lib/editor/EditorToolbarDropdownButton.js +1 -1
  367. package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
  368. package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
  369. package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
  370. package/dist/lib/editor/EditorToolbarPopoverButton.js +1 -1
  371. package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
  372. package/dist/lib/editor/editor.cjs +1 -1
  373. package/dist/lib/editor/editor.cjs.map +1 -1
  374. package/dist/lib/editor/editor.js +143 -142
  375. package/dist/lib/editor/editor.js.map +1 -1
  376. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  377. package/dist/lib/emoji-picker/emoji-picker.js +1 -1
  378. package/dist/lib/emoji-picker/index.cjs +1 -1
  379. package/dist/lib/emoji-picker/index.js +1 -1
  380. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  381. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  382. package/dist/lib/emoji-row/emoji-row.js +1 -1
  383. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  384. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  385. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  386. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  387. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  388. package/dist/lib/empty-state/empty-state-constants.js +9 -37
  389. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  390. package/dist/lib/empty-state/empty-state.cjs +1 -1
  391. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  392. package/dist/lib/empty-state/empty-state.js +30 -77
  393. package/dist/lib/empty-state/empty-state.js.map +1 -1
  394. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  395. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  396. package/dist/lib/feed-item-pill/feed-item-pill.js +42 -40
  397. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  398. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  399. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  400. package/dist/lib/feed-item-row/feed-item-row.js +3 -3
  401. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  402. package/dist/lib/general-row/general-row.cjs +1 -1
  403. package/dist/lib/general-row/general-row.cjs.map +1 -1
  404. package/dist/lib/general-row/general-row.js +61 -105
  405. package/dist/lib/general-row/general-row.js.map +1 -1
  406. package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
  407. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  408. package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
  409. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  410. package/dist/lib/group-row/group-row.cjs +1 -1
  411. package/dist/lib/group-row/group-row.cjs.map +1 -1
  412. package/dist/lib/group-row/group-row.js +2 -2
  413. package/dist/lib/group-row/group-row.js.map +1 -1
  414. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  415. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  416. package/dist/lib/grouped-chip/grouped-chip.js +9 -9
  417. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  418. package/dist/lib/hovercard/hovercard.cjs +1 -1
  419. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  420. package/dist/lib/hovercard/hovercard.js +24 -38
  421. package/dist/lib/hovercard/hovercard.js.map +1 -1
  422. package/dist/lib/icon/icon.cjs +1 -1
  423. package/dist/lib/icon/icon.cjs.map +1 -1
  424. package/dist/lib/icon/icon.js +1 -1
  425. package/dist/lib/icon/icon.js.map +1 -1
  426. package/dist/lib/illustration/illustration.cjs +1 -1
  427. package/dist/lib/illustration/illustration.cjs.map +1 -1
  428. package/dist/lib/illustration/illustration.js +1 -1
  429. package/dist/lib/illustration/illustration.js.map +1 -1
  430. package/dist/lib/image-viewer/image-viewer.cjs +1 -1
  431. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  432. package/dist/lib/image-viewer/image-viewer.js +32 -33
  433. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  434. package/dist/lib/input/input-constants.cjs +1 -1
  435. package/dist/lib/input/input-constants.cjs.map +1 -1
  436. package/dist/lib/input/input-constants.js +11 -25
  437. package/dist/lib/input/input-constants.js.map +1 -1
  438. package/dist/lib/input/input.cjs +1 -1
  439. package/dist/lib/input/input.cjs.map +1 -1
  440. package/dist/lib/input/input.js +85 -190
  441. package/dist/lib/input/input.js.map +1 -1
  442. package/dist/lib/input-group/input-group.cjs +1 -1
  443. package/dist/lib/input-group/input-group.cjs.map +1 -1
  444. package/dist/lib/input-group/input-group.js +15 -25
  445. package/dist/lib/input-group/input-group.js.map +1 -1
  446. package/dist/lib/item-layout/item-layout.cjs +3 -3
  447. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  448. package/dist/lib/item-layout/item-layout.js +19 -82
  449. package/dist/lib/item-layout/item-layout.js.map +1 -1
  450. package/dist/lib/ivr-node/ivr-node.cjs +1 -1
  451. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  452. package/dist/lib/ivr-node/ivr-node.js +1 -1
  453. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  454. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  455. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  456. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +38 -48
  457. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  458. package/dist/lib/link/index.cjs +1 -1
  459. package/dist/lib/link/index.js +2 -2
  460. package/dist/lib/link/link-constants.cjs +1 -1
  461. package/dist/lib/link/link-constants.cjs.map +1 -1
  462. package/dist/lib/link/link-constants.js +14 -17
  463. package/dist/lib/link/link-constants.js.map +1 -1
  464. package/dist/lib/link/link.cjs +1 -1
  465. package/dist/lib/link/link.cjs.map +1 -1
  466. package/dist/lib/link/link.js +2 -17
  467. package/dist/lib/link/link.js.map +1 -1
  468. package/dist/lib/list-item/list-item.cjs +1 -1
  469. package/dist/lib/list-item/list-item.cjs.map +1 -1
  470. package/dist/lib/list-item/list-item.js +5 -9
  471. package/dist/lib/list-item/list-item.js.map +1 -1
  472. package/dist/lib/list-item-group/list-item-group.cjs +1 -1
  473. package/dist/lib/list-item-group/list-item-group.cjs.map +1 -1
  474. package/dist/lib/list-item-group/list-item-group.js +1 -1
  475. package/dist/lib/list-item-group/list-item-group.js.map +1 -1
  476. package/dist/lib/message-input/index.cjs +1 -1
  477. package/dist/lib/message-input/index.js +1 -1
  478. package/dist/lib/message-input/message-input-button.cjs +1 -1
  479. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  480. package/dist/lib/message-input/message-input-button.js +1 -1
  481. package/dist/lib/message-input/message-input-button.js.map +1 -1
  482. package/dist/lib/message-input/message-input-link.cjs +1 -1
  483. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  484. package/dist/lib/message-input/message-input-link.js +9 -9
  485. package/dist/lib/message-input/message-input-link.js.map +1 -1
  486. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  487. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  488. package/dist/lib/message-input/message-input-topbar.js +2 -2
  489. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  490. package/dist/lib/message-input/message-input.cjs +1 -1
  491. package/dist/lib/message-input/message-input.js +1 -1
  492. package/dist/lib/modal/modal-constants.cjs +1 -1
  493. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  494. package/dist/lib/modal/modal-constants.js +3 -3
  495. package/dist/lib/modal/modal-constants.js.map +1 -1
  496. package/dist/lib/modal/modal.cjs +1 -1
  497. package/dist/lib/modal/modal.cjs.map +1 -1
  498. package/dist/lib/modal/modal.js +164 -181
  499. package/dist/lib/modal/modal.js.map +1 -1
  500. package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
  501. package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
  502. package/dist/lib/motion-text/motion-text-constants.js +6 -18
  503. package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
  504. package/dist/lib/motion-text/motion-text.cjs +1 -1
  505. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  506. package/dist/lib/motion-text/motion-text.js +7 -5
  507. package/dist/lib/motion-text/motion-text.js.map +1 -1
  508. package/dist/lib/notice/notice-action.cjs +1 -1
  509. package/dist/lib/notice/notice-action.cjs.map +1 -1
  510. package/dist/lib/notice/notice-action.js +26 -34
  511. package/dist/lib/notice/notice-action.js.map +1 -1
  512. package/dist/lib/notice/notice-constants.cjs +1 -1
  513. package/dist/lib/notice/notice-constants.cjs.map +1 -1
  514. package/dist/lib/notice/notice-constants.js +2 -2
  515. package/dist/lib/notice/notice-constants.js.map +1 -1
  516. package/dist/lib/notice/notice-content.cjs +1 -1
  517. package/dist/lib/notice/notice-content.cjs.map +1 -1
  518. package/dist/lib/notice/notice-content.js +18 -51
  519. package/dist/lib/notice/notice-content.js.map +1 -1
  520. package/dist/lib/notice/notice-icon.cjs +1 -1
  521. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  522. package/dist/lib/notice/notice-icon.js +28 -38
  523. package/dist/lib/notice/notice-icon.js.map +1 -1
  524. package/dist/lib/notice/notice.cjs +1 -1
  525. package/dist/lib/notice/notice.cjs.map +1 -1
  526. package/dist/lib/notice/notice.js +23 -70
  527. package/dist/lib/notice/notice.js.map +1 -1
  528. package/dist/lib/pagination/pagination.cjs +1 -1
  529. package/dist/lib/pagination/pagination.cjs.map +1 -1
  530. package/dist/lib/pagination/pagination.js +12 -13
  531. package/dist/lib/pagination/pagination.js.map +1 -1
  532. package/dist/lib/popover/popover-constants.cjs +1 -1
  533. package/dist/lib/popover/popover-constants.cjs.map +1 -1
  534. package/dist/lib/popover/popover-constants.js +6 -6
  535. package/dist/lib/popover/popover-constants.js.map +1 -1
  536. package/dist/lib/popover/popover-header-footer.cjs +1 -1
  537. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  538. package/dist/lib/popover/popover-header-footer.js +3 -11
  539. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  540. package/dist/lib/popover/popover.cjs +1 -1
  541. package/dist/lib/popover/popover.cjs.map +1 -1
  542. package/dist/lib/popover/popover.js +59 -88
  543. package/dist/lib/popover/popover.js.map +1 -1
  544. package/dist/lib/radio/radio-constants.cjs +1 -1
  545. package/dist/lib/radio/radio-constants.cjs.map +1 -1
  546. package/dist/lib/radio/radio-constants.js +2 -2
  547. package/dist/lib/radio/radio-constants.js.map +1 -1
  548. package/dist/lib/radio/radio.cjs +1 -1
  549. package/dist/lib/radio/radio.cjs.map +1 -1
  550. package/dist/lib/radio/radio.js +33 -95
  551. package/dist/lib/radio/radio.js.map +1 -1
  552. package/dist/lib/radio-group/radio-group.cjs +1 -1
  553. package/dist/lib/radio-group/radio-group.cjs.map +1 -1
  554. package/dist/lib/radio-group/radio-group.js +2 -2
  555. package/dist/lib/radio-group/radio-group.js.map +1 -1
  556. package/dist/lib/resizable/index.cjs +1 -1
  557. package/dist/lib/resizable/index.js +3 -3
  558. package/dist/lib/resizable/resizable-handle.cjs +1 -1
  559. package/dist/lib/resizable/resizable-handle.js +1 -1
  560. package/dist/lib/resizable/resizable-panel.cjs +1 -1
  561. package/dist/lib/resizable/resizable-panel.cjs.map +1 -1
  562. package/dist/lib/resizable/resizable-panel.js +3 -11
  563. package/dist/lib/resizable/resizable-panel.js.map +1 -1
  564. package/dist/lib/resizable/resizable.cjs +1 -1
  565. package/dist/lib/resizable/resizable.js +1 -1
  566. package/dist/lib/rich-text-editor/index.cjs +1 -1
  567. package/dist/lib/rich-text-editor/index.js +1 -1
  568. package/dist/lib/rich-text-editor/markdownRenderer.cjs +1 -1
  569. package/dist/lib/rich-text-editor/markdownRenderer.js +1 -1
  570. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  571. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  572. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  573. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  574. package/dist/lib/root-layout/root-layout-constants.js +0 -2
  575. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  576. package/dist/lib/root-layout/root-layout.cjs +1 -1
  577. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  578. package/dist/lib/root-layout/root-layout.js +2 -2
  579. package/dist/lib/root-layout/root-layout.js.map +1 -1
  580. package/dist/lib/scroller/index.cjs +1 -1
  581. package/dist/lib/scroller/index.js +1 -1
  582. package/dist/lib/scroller/scroller.cjs +1 -1
  583. package/dist/lib/scroller/scroller.js +1 -1
  584. package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
  585. package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
  586. package/dist/lib/select-menu/select-menu-constants.js +2 -7
  587. package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
  588. package/dist/lib/select-menu/select-menu.cjs +1 -1
  589. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  590. package/dist/lib/select-menu/select-menu.js +64 -119
  591. package/dist/lib/select-menu/select-menu.js.map +1 -1
  592. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  593. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  594. package/dist/lib/settings-menu-button/settings-menu-button.js +5 -5
  595. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  596. package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
  597. package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
  598. package/dist/lib/skeleton/skeleton-constants.js +4 -12
  599. package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
  600. package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
  601. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  602. package/dist/lib/skeleton/skeleton-list-item.js +2 -2
  603. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  604. package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
  605. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  606. package/dist/lib/skeleton/skeleton-shape.js +3 -3
  607. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  608. package/dist/lib/split-button/split-button-alpha.cjs +2 -0
  609. package/dist/lib/split-button/split-button-alpha.cjs.map +1 -0
  610. package/dist/lib/split-button/split-button-alpha.js +107 -0
  611. package/dist/lib/split-button/split-button-alpha.js.map +1 -0
  612. package/dist/lib/split-button/split-button-constants.cjs +1 -1
  613. package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
  614. package/dist/lib/split-button/split-button-constants.js +0 -5
  615. package/dist/lib/split-button/split-button-constants.js.map +1 -1
  616. package/dist/lib/split-button/split-button-omega.cjs +2 -0
  617. package/dist/lib/split-button/split-button-omega.cjs.map +1 -0
  618. package/dist/lib/split-button/{split-button-end.js → split-button-omega.js} +9 -9
  619. package/dist/lib/split-button/split-button-omega.js.map +1 -0
  620. package/dist/lib/split-button/split-button.cjs +1 -1
  621. package/dist/lib/split-button/split-button.cjs.map +1 -1
  622. package/dist/lib/split-button/split-button.js +71 -246
  623. package/dist/lib/split-button/split-button.js.map +1 -1
  624. package/dist/lib/stack/stack-constants.cjs +1 -1
  625. package/dist/lib/stack/stack-constants.cjs.map +1 -1
  626. package/dist/lib/stack/stack-constants.js +2 -10
  627. package/dist/lib/stack/stack-constants.js.map +1 -1
  628. package/dist/lib/stack/stack.cjs.map +1 -1
  629. package/dist/lib/stack/stack.js.map +1 -1
  630. package/dist/lib/tab/index.cjs +1 -1
  631. package/dist/lib/tab/index.js +5 -5
  632. package/dist/lib/tab/tab-group.cjs +1 -1
  633. package/dist/lib/tab/tab-group.cjs.map +1 -1
  634. package/dist/lib/tab/tab-group.js +52 -186
  635. package/dist/lib/tab/tab-group.js.map +1 -1
  636. package/dist/lib/tab/tab.cjs +1 -1
  637. package/dist/lib/tab/tab.cjs.map +1 -1
  638. package/dist/lib/tab/tab.js +23 -108
  639. package/dist/lib/tab/tab.js.map +1 -1
  640. package/dist/lib/tab/tabs-constants.cjs +1 -1
  641. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  642. package/dist/lib/tab/tabs-constants.js +2 -33
  643. package/dist/lib/tab/tabs-constants.js.map +1 -1
  644. package/dist/lib/toast/index.cjs +1 -1
  645. package/dist/lib/toast/index.js +1 -1
  646. package/dist/lib/toast/toast.cjs +1 -1
  647. package/dist/lib/toast/toast.js +1 -1
  648. package/dist/lib/toggle/toggle-constants.cjs +1 -1
  649. package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
  650. package/dist/lib/toggle/toggle-constants.js +0 -2
  651. package/dist/lib/toggle/toggle-constants.js.map +1 -1
  652. package/dist/lib/toggle/toggle.cjs +1 -1
  653. package/dist/lib/toggle/toggle.cjs.map +1 -1
  654. package/dist/lib/toggle/toggle.js +31 -26
  655. package/dist/lib/toggle/toggle.js.map +1 -1
  656. package/dist/lib/tooltip/tooltip.cjs +4 -1
  657. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  658. package/dist/lib/tooltip/tooltip.js +32 -46
  659. package/dist/lib/tooltip/tooltip.js.map +1 -1
  660. package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
  661. package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
  662. package/dist/lib/tooltip-directive/tooltip.js +35 -36
  663. package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
  664. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  665. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  666. package/dist/lib/top-banner-info/top-banner-info.js +4 -4
  667. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  668. package/dist/lib/unread-pill/unread-pill.cjs +1 -1
  669. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  670. package/dist/lib/unread-pill/unread-pill.js +1 -1
  671. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  672. package/dist/lib/validation-messages/validation-messages.cjs +1 -1
  673. package/dist/lib/validation-messages/validation-messages.cjs.map +1 -1
  674. package/dist/lib/validation-messages/validation-messages.js +2 -2
  675. package/dist/lib/validation-messages/validation-messages.js.map +1 -1
  676. package/dist/localization/en-US.cjs +0 -5
  677. package/dist/localization/en-US.cjs.map +1 -1
  678. package/dist/localization/en-US.js +1 -1
  679. package/dist/localization/en-US.js.map +1 -1
  680. package/dist/{markdownRenderer-Dsq-CiH9.cjs → markdownRenderer-DCgGQseq.cjs} +1 -1
  681. package/dist/{markdownRenderer-Dsq-CiH9.cjs.map → markdownRenderer-DCgGQseq.cjs.map} +1 -1
  682. package/dist/{markdownRenderer-k7_rQkox.js → markdownRenderer-D_P94RyM.js} +1 -1
  683. package/dist/{markdownRenderer-k7_rQkox.js.map → markdownRenderer-D_P94RyM.js.map} +1 -1
  684. package/dist/message_input-BiCHkV9g.cjs +2 -0
  685. package/dist/message_input-BiCHkV9g.cjs.map +1 -0
  686. package/dist/{message_input-rXsWKem_.js → message_input-DO6pV_GG.js} +132 -131
  687. package/dist/message_input-DO6pV_GG.js.map +1 -0
  688. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +17 -142
  689. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  690. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +53 -532
  691. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  692. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +49 -508
  693. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  694. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +46 -392
  695. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  696. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +16 -125
  697. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  698. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +31 -420
  699. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  700. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +24 -322
  701. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  702. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +7 -98
  703. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +35 -390
  704. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  705. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +30 -365
  706. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  707. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +284 -1824
  708. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  709. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +55 -199
  710. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  711. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +48 -161
  712. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  713. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +56 -165
  714. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  715. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +34 -156
  716. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  717. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +188 -2104
  718. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  719. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +15 -283
  720. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  721. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +85 -881
  722. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  723. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +15 -283
  724. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  725. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +7 -98
  726. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  727. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +54 -143
  728. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  729. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +34 -110
  730. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  731. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +33 -150
  732. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  733. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +85 -673
  734. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  735. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +39 -560
  736. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  737. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  738. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +38 -559
  739. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  740. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  741. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  742. package/dist/{resizable-CcxS3dH7.js → resizable-D4-peBOl.js} +3 -3
  743. package/dist/{resizable-CcxS3dH7.js.map → resizable-D4-peBOl.js.map} +1 -1
  744. package/dist/{resizable-DdPrpKvD.cjs → resizable-aOVGO_Os.cjs} +2 -2
  745. package/dist/{resizable-DdPrpKvD.cjs.map → resizable-aOVGO_Os.cjs.map} +1 -1
  746. package/dist/{resizable_handle-vqI5i9u6.js → resizable_handle-BlKBiWnx.js} +3 -3
  747. package/dist/{resizable_handle-vqI5i9u6.js.map → resizable_handle-BlKBiWnx.js.map} +1 -1
  748. package/dist/{resizable_handle-g45rLu_2.cjs → resizable_handle-RIKS8frB.cjs} +2 -2
  749. package/dist/{resizable_handle-g45rLu_2.cjs.map → resizable_handle-RIKS8frB.cjs.map} +1 -1
  750. package/dist/{resizable_utils-CQscchW4.js → resizable_utils-BComtrMV.js} +47 -29
  751. package/dist/resizable_utils-BComtrMV.js.map +1 -0
  752. package/dist/resizable_utils-DhuzXRdP.cjs +2 -0
  753. package/dist/resizable_utils-DhuzXRdP.cjs.map +1 -0
  754. package/dist/{rich_text_editor-DRwU4mUa.js → rich_text_editor-DYu2R0kw.js} +602 -640
  755. package/dist/{rich_text_editor-DRwU4mUa.js.map → rich_text_editor-DYu2R0kw.js.map} +1 -1
  756. package/dist/rich_text_editor-FduHYl-G.cjs +12 -0
  757. package/dist/{rich_text_editor-TolFmwK_.cjs.map → rich_text_editor-FduHYl-G.cjs.map} +1 -1
  758. package/dist/{scroller-DPqcc_Wl.js → scroller-BGVDh3sq.js} +6 -6
  759. package/dist/scroller-BGVDh3sq.js.map +1 -0
  760. package/dist/scroller-CjAsgjl9.cjs +2 -0
  761. package/dist/scroller-CjAsgjl9.cjs.map +1 -0
  762. package/dist/shared/sr_only_close_button.cjs +1 -1
  763. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  764. package/dist/shared/sr_only_close_button.js +1 -1
  765. package/dist/shared/sr_only_close_button.js.map +1 -1
  766. package/dist/{toast-DqbTiHVx.js → toast-DvPN-bCi.js} +89 -222
  767. package/dist/toast-DvPN-bCi.js.map +1 -0
  768. package/dist/toast-d8_zmgkL.cjs +2 -0
  769. package/dist/toast-d8_zmgkL.cjs.map +1 -0
  770. package/dist/{useResizableCalculations-CoVtK_0B.cjs → useResizableCalculations-BDITle3Q.cjs} +2 -2
  771. package/dist/{useResizableCalculations-CoVtK_0B.cjs.map → useResizableCalculations-BDITle3Q.cjs.map} +1 -1
  772. package/dist/{useResizableCalculations-YI08W37g.js → useResizableCalculations-DAajatT4.js} +2 -2
  773. package/dist/{useResizableCalculations-YI08W37g.js.map → useResizableCalculations-DAajatT4.js.map} +1 -1
  774. package/package.json +5 -7
  775. package/dist/attachment_carousel-1qxTI-NN.js.map +0 -1
  776. package/dist/attachment_carousel-wnZS3vEt.cjs +0 -2
  777. package/dist/attachment_carousel-wnZS3vEt.cjs.map +0 -1
  778. package/dist/combobox-BQBKrDTW.js.map +0 -1
  779. package/dist/combobox-Da7wBh3G.cjs +0 -3
  780. package/dist/combobox-Da7wBh3G.cjs.map +0 -1
  781. package/dist/common/composables/useIndicatorAnimation.cjs +0 -2
  782. package/dist/common/composables/useIndicatorAnimation.cjs.map +0 -1
  783. package/dist/common/composables/useIndicatorAnimation.d.ts +0 -18
  784. package/dist/common/composables/useIndicatorAnimation.d.ts.map +0 -1
  785. package/dist/common/composables/useIndicatorAnimation.js +0 -78
  786. package/dist/common/composables/useIndicatorAnimation.js.map +0 -1
  787. package/dist/common/constants/sizes.cjs +0 -2
  788. package/dist/common/constants/sizes.cjs.map +0 -1
  789. package/dist/common/constants/sizes.d.ts +0 -22
  790. package/dist/common/constants/sizes.d.ts.map +0 -1
  791. package/dist/common/constants/sizes.js +0 -19
  792. package/dist/common/constants/sizes.js.map +0 -1
  793. package/dist/common/mixins/mode.cjs +0 -2
  794. package/dist/common/mixins/mode.cjs.map +0 -1
  795. package/dist/common/mixins/mode.d.ts +0 -25
  796. package/dist/common/mixins/mode.d.ts.map +0 -1
  797. package/dist/common/mixins/mode.js +0 -62
  798. package/dist/common/mixins/mode.js.map +0 -1
  799. package/dist/common/mode_constants.d.ts +0 -37
  800. package/dist/common/mode_constants.d.ts.map +0 -1
  801. package/dist/components/box/box.vue.d.ts +0 -75
  802. package/dist/components/box/box.vue.d.ts.map +0 -1
  803. package/dist/components/box/box_constants.d.ts +0 -11
  804. package/dist/components/box/box_constants.d.ts.map +0 -1
  805. package/dist/components/box/index.d.ts +0 -3
  806. package/dist/components/box/index.d.ts.map +0 -1
  807. package/dist/components/box/validators.d.ts +0 -11
  808. package/dist/components/box/validators.d.ts.map +0 -1
  809. package/dist/components/codeblock/codeblock_constants.d.ts +0 -9
  810. package/dist/components/codeblock/codeblock_constants.d.ts.map +0 -1
  811. package/dist/components/filter_pill/filter_pill.vue.d.ts +0 -4739
  812. package/dist/components/filter_pill/filter_pill.vue.d.ts.map +0 -1
  813. package/dist/components/filter_pill/index.d.ts +0 -2
  814. package/dist/components/filter_pill/index.d.ts.map +0 -1
  815. package/dist/components/mode_island/index.d.ts +0 -3
  816. package/dist/components/mode_island/index.d.ts.map +0 -1
  817. package/dist/components/mode_island/mode_island.vue.d.ts +0 -3
  818. package/dist/components/mode_island/mode_island.vue.d.ts.map +0 -1
  819. package/dist/components/mode_island/mode_island_constants.d.ts +0 -10
  820. package/dist/components/mode_island/mode_island_constants.d.ts.map +0 -1
  821. package/dist/components/mode_island/utils.d.ts +0 -12
  822. package/dist/components/mode_island/utils.d.ts.map +0 -1
  823. package/dist/components/mode_island/validators.d.ts +0 -6
  824. package/dist/components/mode_island/validators.d.ts.map +0 -1
  825. package/dist/components/prose/index.d.ts +0 -3
  826. package/dist/components/prose/index.d.ts.map +0 -1
  827. package/dist/components/prose/prose.vue.d.ts +0 -26
  828. package/dist/components/prose/prose.vue.d.ts.map +0 -1
  829. package/dist/components/prose/prose_constants.d.ts +0 -34
  830. package/dist/components/prose/prose_constants.d.ts.map +0 -1
  831. package/dist/components/segmented_control/index.d.ts +0 -4
  832. package/dist/components/segmented_control/index.d.ts.map +0 -1
  833. package/dist/components/segmented_control/segmented_control.vue.d.ts +0 -226
  834. package/dist/components/segmented_control/segmented_control.vue.d.ts.map +0 -1
  835. package/dist/components/segmented_control/segmented_control_constants.d.ts +0 -41
  836. package/dist/components/segmented_control/segmented_control_constants.d.ts.map +0 -1
  837. package/dist/components/segmented_control/segmented_control_item.vue.d.ts +0 -35
  838. package/dist/components/segmented_control/segmented_control_item.vue.d.ts.map +0 -1
  839. package/dist/components/split_button/split_button-end.vue.d.ts.map +0 -1
  840. package/dist/components/split_button/split_button-start.vue.d.ts.map +0 -1
  841. package/dist/components/text/index.d.ts +0 -3
  842. package/dist/components/text/index.d.ts.map +0 -1
  843. package/dist/components/text/text.vue.d.ts +0 -145
  844. package/dist/components/text/text.vue.d.ts.map +0 -1
  845. package/dist/components/text/text_constants.d.ts +0 -95
  846. package/dist/components/text/text_constants.d.ts.map +0 -1
  847. package/dist/datepicker-B2nhxiCg.js.map +0 -1
  848. package/dist/datepicker-CZrNL0Yn.cjs +0 -2
  849. package/dist/datepicker-CZrNL0Yn.cjs.map +0 -1
  850. package/dist/directives/focusgroup_directive/focusgroup.d.ts +0 -6
  851. package/dist/directives/focusgroup_directive/focusgroup.d.ts.map +0 -1
  852. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts +0 -74
  853. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts.map +0 -1
  854. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts +0 -15
  855. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts.map +0 -1
  856. package/dist/directives/focusgroup_directive/index.d.ts +0 -2
  857. package/dist/directives/focusgroup_directive/index.d.ts.map +0 -1
  858. package/dist/directives/focustrap_directive/focustrap.d.ts +0 -6
  859. package/dist/directives/focustrap_directive/focustrap.d.ts.map +0 -1
  860. package/dist/directives/focustrap_directive/focustrap_constants.d.ts +0 -7
  861. package/dist/directives/focustrap_directive/focustrap_constants.d.ts.map +0 -1
  862. package/dist/directives/focustrap_directive/focustrap_utils.d.ts +0 -5
  863. package/dist/directives/focustrap_directive/focustrap_utils.d.ts.map +0 -1
  864. package/dist/directives/focustrap_directive/index.d.ts +0 -2
  865. package/dist/directives/focustrap_directive/index.d.ts.map +0 -1
  866. package/dist/directives/mode_directive/index.d.ts +0 -2
  867. package/dist/directives/mode_directive/index.d.ts.map +0 -1
  868. package/dist/directives/mode_directive/mode.d.ts +0 -6
  869. package/dist/directives/mode_directive/mode.d.ts.map +0 -1
  870. package/dist/emoji_picker-BQW4qRFg.cjs +0 -2
  871. package/dist/emoji_picker-BQW4qRFg.cjs.map +0 -1
  872. package/dist/emoji_picker-BjgAohQy.js.map +0 -1
  873. package/dist/lib/box/box-constants.cjs +0 -2
  874. package/dist/lib/box/box-constants.cjs.map +0 -1
  875. package/dist/lib/box/box-constants.js +0 -107
  876. package/dist/lib/box/box-constants.js.map +0 -1
  877. package/dist/lib/box/box.cjs +0 -2
  878. package/dist/lib/box/box.cjs.map +0 -1
  879. package/dist/lib/box/box.js +0 -237
  880. package/dist/lib/box/box.js.map +0 -1
  881. package/dist/lib/box/index.cjs +0 -1
  882. package/dist/lib/box/index.js +0 -3
  883. package/dist/lib/box/validators.cjs +0 -2
  884. package/dist/lib/box/validators.cjs.map +0 -1
  885. package/dist/lib/box/validators.js +0 -17
  886. package/dist/lib/box/validators.js.map +0 -1
  887. package/dist/lib/codeblock/codeblock-constants.cjs +0 -2
  888. package/dist/lib/codeblock/codeblock-constants.cjs.map +0 -1
  889. package/dist/lib/codeblock/codeblock-constants.js +0 -20
  890. package/dist/lib/codeblock/codeblock-constants.js.map +0 -1
  891. package/dist/lib/filter-pill/filter-pill.cjs +0 -2
  892. package/dist/lib/filter-pill/filter-pill.cjs.map +0 -1
  893. package/dist/lib/filter-pill/filter-pill.js +0 -441
  894. package/dist/lib/filter-pill/filter-pill.js.map +0 -1
  895. package/dist/lib/filter-pill/index.cjs +0 -1
  896. package/dist/lib/filter-pill/index.js +0 -2
  897. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs +0 -2
  898. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs.map +0 -1
  899. package/dist/lib/focusgroup-directive/focusgroup-constants.js +0 -77
  900. package/dist/lib/focusgroup-directive/focusgroup-constants.js.map +0 -1
  901. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs +0 -2
  902. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs.map +0 -1
  903. package/dist/lib/focusgroup-directive/focusgroup-utils.js +0 -33
  904. package/dist/lib/focusgroup-directive/focusgroup-utils.js.map +0 -1
  905. package/dist/lib/focusgroup-directive/focusgroup.cjs +0 -2
  906. package/dist/lib/focusgroup-directive/focusgroup.cjs.map +0 -1
  907. package/dist/lib/focusgroup-directive/focusgroup.js +0 -143
  908. package/dist/lib/focusgroup-directive/focusgroup.js.map +0 -1
  909. package/dist/lib/focusgroup-directive/index.cjs +0 -1
  910. package/dist/lib/focusgroup-directive/index.js +0 -2
  911. package/dist/lib/focustrap-directive/focustrap-constants.cjs +0 -2
  912. package/dist/lib/focustrap-directive/focustrap-constants.cjs.map +0 -1
  913. package/dist/lib/focustrap-directive/focustrap-constants.js +0 -10
  914. package/dist/lib/focustrap-directive/focustrap-constants.js.map +0 -1
  915. package/dist/lib/focustrap-directive/focustrap-utils.cjs +0 -2
  916. package/dist/lib/focustrap-directive/focustrap-utils.cjs.map +0 -1
  917. package/dist/lib/focustrap-directive/focustrap-utils.js +0 -19
  918. package/dist/lib/focustrap-directive/focustrap-utils.js.map +0 -1
  919. package/dist/lib/focustrap-directive/focustrap.cjs +0 -2
  920. package/dist/lib/focustrap-directive/focustrap.cjs.map +0 -1
  921. package/dist/lib/focustrap-directive/focustrap.js +0 -96
  922. package/dist/lib/focustrap-directive/focustrap.js.map +0 -1
  923. package/dist/lib/focustrap-directive/index.cjs +0 -1
  924. package/dist/lib/focustrap-directive/index.js +0 -2
  925. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +0 -2
  926. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +0 -1
  927. package/dist/lib/kitchen-sink/kitchen-sink-view.js +0 -205
  928. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +0 -1
  929. package/dist/lib/mode-directive/index.cjs +0 -1
  930. package/dist/lib/mode-directive/index.js +0 -2
  931. package/dist/lib/mode-directive/mode.cjs +0 -2
  932. package/dist/lib/mode-directive/mode.cjs.map +0 -1
  933. package/dist/lib/mode-directive/mode.js +0 -67
  934. package/dist/lib/mode-directive/mode.js.map +0 -1
  935. package/dist/lib/mode-island/index.cjs +0 -1
  936. package/dist/lib/mode-island/index.js +0 -3
  937. package/dist/lib/mode-island/mode-island-constants.cjs +0 -2
  938. package/dist/lib/mode-island/mode-island-constants.cjs.map +0 -1
  939. package/dist/lib/mode-island/mode-island-constants.js +0 -10
  940. package/dist/lib/mode-island/mode-island-constants.js.map +0 -1
  941. package/dist/lib/mode-island/mode-island.cjs +0 -2
  942. package/dist/lib/mode-island/mode-island.cjs.map +0 -1
  943. package/dist/lib/mode-island/mode-island.js +0 -102
  944. package/dist/lib/mode-island/mode-island.js.map +0 -1
  945. package/dist/lib/mode-island/utils.cjs +0 -2
  946. package/dist/lib/mode-island/utils.cjs.map +0 -1
  947. package/dist/lib/mode-island/utils.js +0 -28
  948. package/dist/lib/mode-island/utils.js.map +0 -1
  949. package/dist/lib/mode-island/validators.cjs +0 -2
  950. package/dist/lib/mode-island/validators.cjs.map +0 -1
  951. package/dist/lib/mode-island/validators.js +0 -10
  952. package/dist/lib/mode-island/validators.js.map +0 -1
  953. package/dist/lib/prose/index.cjs +0 -1
  954. package/dist/lib/prose/index.js +0 -3
  955. package/dist/lib/prose/prose-constants.cjs +0 -2
  956. package/dist/lib/prose/prose-constants.cjs.map +0 -1
  957. package/dist/lib/prose/prose-constants.js +0 -89
  958. package/dist/lib/prose/prose-constants.js.map +0 -1
  959. package/dist/lib/prose/prose.cjs +0 -2
  960. package/dist/lib/prose/prose.cjs.map +0 -1
  961. package/dist/lib/prose/prose.js +0 -68
  962. package/dist/lib/prose/prose.js.map +0 -1
  963. package/dist/lib/segmented-control/index.cjs +0 -1
  964. package/dist/lib/segmented-control/index.js +0 -4
  965. package/dist/lib/segmented-control/segmented-control-constants.cjs +0 -2
  966. package/dist/lib/segmented-control/segmented-control-constants.cjs.map +0 -1
  967. package/dist/lib/segmented-control/segmented-control-constants.js +0 -41
  968. package/dist/lib/segmented-control/segmented-control-constants.js.map +0 -1
  969. package/dist/lib/segmented-control/segmented-control-item.cjs +0 -2
  970. package/dist/lib/segmented-control/segmented-control-item.cjs.map +0 -1
  971. package/dist/lib/segmented-control/segmented-control-item.js +0 -104
  972. package/dist/lib/segmented-control/segmented-control-item.js.map +0 -1
  973. package/dist/lib/segmented-control/segmented-control.cjs +0 -2
  974. package/dist/lib/segmented-control/segmented-control.cjs.map +0 -1
  975. package/dist/lib/segmented-control/segmented-control.js +0 -204
  976. package/dist/lib/segmented-control/segmented-control.js.map +0 -1
  977. package/dist/lib/split-button/split-button-end.cjs +0 -2
  978. package/dist/lib/split-button/split-button-end.cjs.map +0 -1
  979. package/dist/lib/split-button/split-button-end.js.map +0 -1
  980. package/dist/lib/split-button/split-button-start.cjs +0 -2
  981. package/dist/lib/split-button/split-button-start.cjs.map +0 -1
  982. package/dist/lib/split-button/split-button-start.js +0 -182
  983. package/dist/lib/split-button/split-button-start.js.map +0 -1
  984. package/dist/lib/text/index.cjs +0 -1
  985. package/dist/lib/text/index.js +0 -3
  986. package/dist/lib/text/text-constants.cjs +0 -2
  987. package/dist/lib/text/text-constants.cjs.map +0 -1
  988. package/dist/lib/text/text-constants.js +0 -128
  989. package/dist/lib/text/text-constants.js.map +0 -1
  990. package/dist/lib/text/text.cjs +0 -2
  991. package/dist/lib/text/text.cjs.map +0 -1
  992. package/dist/lib/text/text.js +0 -150
  993. package/dist/lib/text/text.js.map +0 -1
  994. package/dist/message_input-DktL-f28.cjs +0 -2
  995. package/dist/message_input-DktL-f28.cjs.map +0 -1
  996. package/dist/message_input-rXsWKem_.js.map +0 -1
  997. package/dist/mode_constants-CzYJW9ua.cjs +0 -2
  998. package/dist/mode_constants-CzYJW9ua.cjs.map +0 -1
  999. package/dist/mode_constants-tb7TL85q.js +0 -14
  1000. package/dist/mode_constants-tb7TL85q.js.map +0 -1
  1001. package/dist/resizable_utils-CQscchW4.js.map +0 -1
  1002. package/dist/resizable_utils-DabS08OL.cjs +0 -2
  1003. package/dist/resizable_utils-DabS08OL.cjs.map +0 -1
  1004. package/dist/rich_text_editor-TolFmwK_.cjs +0 -12
  1005. package/dist/scroller-C15VLKNK.cjs +0 -2
  1006. package/dist/scroller-C15VLKNK.cjs.map +0 -1
  1007. package/dist/scroller-DPqcc_Wl.js.map +0 -1
  1008. package/dist/toast-BuNWsrhy.cjs +0 -2
  1009. package/dist/toast-BuNWsrhy.cjs.map +0 -1
  1010. package/dist/toast-DqbTiHVx.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji_picker-Cl-T4BXK.cjs","names":["$emit","ARROW_KEYS","$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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"}
@@ -7,7 +7,7 @@ import a from "./lib/tab/tab-group.js";
7
7
  import o from "./lib/tab/tab.js";
8
8
  import { ARROW_KEYS as s, CDN_URL as c, EMOJI_PICKER_SKIN_TONE_MODIFIERS as l } from "./lib/emoji-picker/emoji-picker-constants.js";
9
9
  import { Fragment as u, computed as d, createBlock as f, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createSlots as g, createTextVNode as _, createVNode as v, nextTick as y, normalizeClass as b, onBeforeUnmount as x, onMounted as S, openBlock as C, ref as w, renderList as T, resolveDynamicComponent as E, toDisplayString as D, unref as O, vShow as k, watch as A, watchEffect as j, withCtx as M, withDirectives as N, withKeys as P, withModifiers as F } from "vue";
10
- import { DtIconClock as I, DtIconClose as L, DtIconDialpadStar as R, DtIconFlag as z, DtIconFood as B, DtIconHeart as V, DtIconLightbulb as H, DtIconLivingThing as U, DtIconObject as W, DtIconSatisfied as ee, DtIconSearch as te, DtIconTransportation as G } from "@dialpad/dialtone-icons/vue";
10
+ import { DtIconClock as I, DtIconClose as L, DtIconDialpadStar as R, DtIconFlag as z, DtIconFood as B, DtIconHeart as V, DtIconLightbulb as H, DtIconLivingThing as U, DtIconObject as W, DtIconSatisfied as ee, DtIconSearch as te, DtIconTransportation as G } from "@dialpad/dialtone-icons/vue3";
11
11
  import { emojisGrouped as K } from "@dialpad/dialtone-emojis";
12
12
  //#region components/emoji_picker/modules/emoji_search.vue
13
13
  var q = { class: "d-emoji-picker__search d-emoji-picker__alignment" }, J = {
@@ -51,13 +51,13 @@ var q = { class: "d-emoji-picker__search d-emoji-picker__alignment" }, J = {
51
51
  r[3] || (r[3] = P((e) => t.$emit("select-first-emoji"), ["enter"]))
52
52
  ]
53
53
  }, g({
54
- startIcon: M(() => [v(O(te), { size: "200" })]),
54
+ leftIcon: M(() => [v(O(te), { size: "200" })]),
55
55
  _: 2
56
56
  }, [e.modelValue.length > 0 ? {
57
- name: "endIcon",
57
+ name: "rightIcon",
58
58
  fn: M(() => [v(O(n), {
59
59
  importance: "clear",
60
- size: 100,
60
+ size: "xs",
61
61
  class: "d-emoji-picker__search-x-button",
62
62
  circle: "",
63
63
  kind: "muted",
@@ -168,8 +168,7 @@ var q = { class: "d-emoji-picker__search d-emoji-picker__alignment" }, J = {
168
168
  }
169
169
  return n({ focusTabset: b }), (e, t) => (C(), m("div", Y, [v(O(a), {
170
170
  selected: h.value,
171
- size: 200,
172
- spread: "equal",
171
+ size: "sm",
173
172
  "tab-list-class": "d-emoji-picker__tabset-list"
174
173
  }, {
175
174
  tabs: M(() => [(C(!0), m(u, null, T(l.value, (e, t) => (C(), f(O(o), {
@@ -708,7 +707,7 @@ var re = { class: "d-emoji-picker__selector" }, ie = {
708
707
  src: t(e.emoji)
709
708
  }, null, 8, be)) : p("", !0), h("div", null, D(e.emoji?.name), 1)]));
710
709
  }
711
- }, Se = { class: "d-emoji-picker" }, Ce = { class: "d-emoji-picker--header" }, we = { class: "d-emoji-picker--body" }, Te = { class: "d-emoji-picker--footer" }, Ee = /* @__PURE__ */ Object.assign({ name: "DtEmojiPicker" }, {
710
+ }, Se = { class: "d-emoji-picker" }, Ce = { class: "d-emoji-picker--header" }, we = { class: "d-emoji-picker--body" }, Te = { class: "d-emoji-picker--footer" }, Ee = {
712
711
  __name: "emoji_picker",
713
712
  props: {
714
713
  recentlyUsedEmojis: {
@@ -851,8 +850,8 @@ var re = { class: "d-emoji-picker__selector" }, ie = {
851
850
  ])
852
851
  ]));
853
852
  }
854
- });
853
+ };
855
854
  //#endregion
856
855
  export { Ee as t };
857
856
 
858
- //# sourceMappingURL=emoji_picker-BjgAohQy.js.map
857
+ //# sourceMappingURL=emoji_picker-tVHfpHDk.js.map
@@ -0,0 +1 @@
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDA,IAAM,IAAQ,GAER,IAAc,EAAI,KAAK;EAE7B,SAAS,IAAe;AAEtB,GADA,EAAM,qBAAqB,GAAG,EAC9B,GAAkB;;EAGpB,SAAS,IAAoB;AAC3B,KAAY,MAAM,OAAO;;SAE3B,QAAgB;AACd,MAAkB;IAClB,EAEF,EAAa,EACX,qBACD,CAAC,kBA1EA,EAoCM,OApCN,GAoCM,CAnCJ,EAkCW,EAAA,EAAA,EAAA;GAjCT,IAAG;YACC;GAAJ,KAAI;GACH,aAAa,EAAA;GACb,eAAa,EAAA;GACb,uBAAkB,EAAA,OAAA,EAAA,MAAA,MAAEA,EAAAA,MAAK,qBAAsB,EAAM;GACrD,WAAO;6BAAKA,EAAAA,MAAK,eAAA,EAAA,CAAA,KAAA,CAAA;+BACKA,EAAAA,MAAK,uBAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,OAAA,CAAA;6BACZA,EAAAA,MAAK,qBAAA,EAAA,CAAA,QAAA,CAAA;;;GAEV,UAAQ,QAGf,CAFF,EAEE,EAAA,GAAA,EAAA,EADA,MAAK,OAAK,CAAA,CAAA,CAAA;;MAIN,EAAA,WAAW,SAAM,IAAA;SACtB;eAeW,CAbZ,EAaY,EAAA,EAAA,EAAA;IAZV,YAAW;IACX,MAAK;IACL,OAAM;IACN,QAAA;IACA,MAAK;IACJ,SAAO;;IAEG,MAAI,QAGX,CAFF,EAEE,EAAA,EAAA,EAAA,EADA,MAAK,OAAK,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECgBxB,IAAM,IAAQ,GA0CR,IAAQ,GAYR,IAAY;GAChB;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAa;GACnD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAiB;GACvD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAmB;GACzD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAY;GAClD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAc;GACpD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAsB;GAC5D;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAiB;GACvD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAa;GACnD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAY;GAClD;IAAE,OAAO,EAAM,aAAa;IAAI,MAAM;IAAmB;GAC1D,EAEK,IAAO,QAAe;GAC1B,IAAM,IAAW,EAAM,sBAAsB,IAAY,EAAU,MAAM,EAAE;AAM3E,UAJK,EAAM,uBACT,EAAS,KAAK,EAGT,EAAS,KAAK,GAAK,OAAW;IACnC,GAAG;IAEH,KAAK,IAAQ,GAAG,UAAU;IAC1B,UAAU,IAAQ,GAAG,UAAU;IAChC,EAAE;IACH,EAEI,IAAc,QAAe,EAAM,YAAY,SAAS,EAAE,EAE1D,IAAc,EAAI,IAAI,EAEtB,IAAY,EAAI,EAAE,CAAC;AASzB,EAPA,QAAY,EAAM,qBACV;AACJ,GAAK,EAAY,UACf,EAAY,SAAS,EAAM,gBAAgB,GAAG,UAAU;IAE1D,EAEJ,EAAM,SACE;AACJ,GAAI,EAAY,UACd,EAAY,QAAQ;IAEtB;EAOJ,SAAS,EAAc,GAAI;GAEzB,IAAM,IAAU,SAAS,EAAG;AAG5B,GADA,EAAY,QAAQ,GACpB,EAAM,mBAAmB,EAAQ;;EAGnC,SAAS,EAAc,GAAK;AAG1B,KAAU,MAAM,KAAK,EAAc,EAAI,IAAI,CAAC;;EAG9C,SAAS,IAAe;AACtB,KAAU,MAAM,GAAG,OAAO;;EAG5B,SAAS,EAAe,GAAO,GAAO;AAgBpC,GAfI,EAAM,QAAQ,YAChB,EAAa,EAAM,EAEnB,EAAU,MAAM,IAAQ,GAAG,MAAM,GAG/B,EAAM,QAAQ,UAChB,EAAM,gBAAgB,EAClB,EAAM,WACR,EAAM,sBAAsB,GAE5B,EAAM,qBAAqB,GAI3B,EAAM,QAAQ,eAEhB,EAAM,qBAAqB;;SAI/B,EAAa,EACX,gBACD,CAAC,kBAnMA,EA0BM,OA1BN,GA0BM,CAzBJ,EAwBe,EAAA,EAAA,EAAA;GAvBZ,UAAU,EAAA;GACX,MAAK;GACL,kBAAe;;GAEJ,MAAI,QAEiB,EAAA,EAAA,GAAA,EAD9B,EAgBS,GAAA,MAAA,EAfgB,EAAA,QAAf,GAAK,YADf,EAgBS,EAAA,EAAA,EAAA;IAdN,IAAI,EAAI;IACR,KAAK,EAAI;;IACT,MAAK,MAAE;AAAA,KAAU,KAAI,EAAa,EAAE;;IACpC,OAAO,EAAI;IACX,YAAU,EAAI;IACd,UAAU,IAAK;IAChB,iBAAc;IACb,YAAO,MAAE,EAAc,GAAQ,EAAI,GAAE;6BACjB,EAAa,EAAI,GAAE,EAAA,CAAA,OAAA,CAAA;;qBAKtC,EAAA,GAAA,EAHF,EAGE,EAFK,EAAI,KAAI,EAAA,EACb,MAAK,OAAK,CAAA,EAAA,CAAA;;;;;;;;;;;;;;;;ACnBtB,SAAgB,KAAyB;CACvC,IAAM,IAAY,EAAI,EAAE,CAAC,EACnB,IAAoB,EAAI,EAAE,CAAC,EAC3B,IAAc,EAAI,GAAM,EACxB,IAAkB,EAAI,GAAK;CAEjC,SAAS,EAAkB,GAAU,GAAY;AAC/C,EAAK,EAAW,GAAU,IAAa,EAAE,KACnC,EAAU,MAAM,IAAW,KAC7B,EAAW,IAAW,GAAG,EAAU,MAAM,IAAW,GAAG,SAAS,EAAE,GAElE,EAAW,EAAU,MAAM,SAAS,GAAG,EAAU,MAAM,EAAU,MAAM,SAAS,GAAG,SAAS,EAAE;;CAKpG,SAAS,EAAmB,GAAU,GAAY;AAChD,EAAK,EAAW,GAAU,IAAa,EAAE,IAClC,EAAW,IAAW,GAAG,EAAE,IAC9B,EAAW,GAAG,EAAE;;CAKtB,SAAS,EAA0B,GAAU,GAAY;AACvD,EAAK,EAAW,GAAG,IAAa,EAAE,IAChC,EAAW,GAAG,EAAkB,MAAM,SAAS,EAAE;;CAIrD,SAAS,EAA2B,GAAU,GAAY;AACxD,EAAK,EAAW,GAAG,IAAa,EAAE,IAChC,EAAW,GAAG,EAAE;;CAIpB,SAAS,EAA6B,GAAW,GAAU,GAAY;AACrE,EAAI,EAAY,QACV,MAAc,SAChB,EAAyB,GAAU,EAAW,GACrC,MAAc,WACvB,EAA0B,GAAU,EAAW,GAG7C,MAAc,SAChB,EAAiB,GAAU,EAAW,GAC7B,MAAc,WACvB,EAAkB,GAAU,EAAW;;CAK7C,SAAS,EAAY,GAAU,GAAY;EACzC,IAAM,IAAW,EAAY,QACzB,EAAkB,QAAQ,KAC1B,EAAU,QAAQ,KAAY;AAOlC,SALI,KACF,EAAS,OAAO,EACT,MAGF;;CAGT,SAAS,EAAa,GAAI,GAAU,GAAY;AAI9C,EAHK,EAAU,MAAM,OACnB,EAAU,MAAM,KAAY,EAAE,GAEhC,EAAU,MAAM,GAAU,KAAc;;CAG1C,SAAS,EAAgB,GAAI,GAAO;AAClC,IAAkB,MAAM,KAAS;;CAGnC,SAAS,EAA+B,GAAK,GAAY;AAGvD,MAFA,EAAgB,QAAQ,IAEpB,MAAQ,EAAW,UAAU;GAC/B,IAAM,IAAW,IAAA;AAEjB,OAAI,CAAC,EAAW,GAAG,IAAA,EAA4B,EAAE;IAC/C,IAAM,IACN,EAAkB,MAAM,SAAU,EAAkB,MAAM,SAAA,IAA2B;AAIrF,IAFA,EAAW,GAAG,EAAkB,EAE3B,EAAW,GAAG,EAAkB,IACnC,EAAW,GAAG,EAAkB,MAAM,SAAS,EAAE;;;AAKvD,MAAI,MAAQ,EAAW,cACjB,CAAC,EAAW,GAAG,IAAA,EAA4B,EAAE;GAC/C,IAAM,IAAW,IAAA;AAEjB,GAAI,EAAkB,QAAQ,KAAA,IAA+B,MAC3D,EAAW,GAAG,EAAkB,MAAM,SAAS,EAAE,GAEjD,EAAW,GAAG,EAAS;;AAS7B,EAJI,MAAQ,EAAW,cACrB,EAA4B,QAAQ,GAAG,EAAW,EAGhD,MAAQ,EAAW,eACrB,EAA4B,SAAS,GAAG,EAAW;;CAIvD,SAAS,EAAuB,GAAK,GAAU,GAAY;AACzD,MAAI,MAAQ,WAAW;GACrB,IAAM,IAAW,IAAA;AAEjB,OAAI,MAAa,GAAG;IAElB,IAAM,IAAA,IACY,EAAU,MAAM,EAAU,MAAM,SAAS,GAAG,SAAA,GAExD,IACN,EAAU,MAAM,EAAU,MAAM,SAAS,GAAG,SAAS,KAAA,IAA0C;AAE/F,IAAK,EAAW,EAAU,MAAM,SAAS,GAAG,EAAY,IAEtD,EAAW,EAAU,MAAM,SAAS,GAAG,EAAU,MAAM,EAAU,MAAM,SAAS,GAAG,SAAS,EAAE;AAEhG;;AAIF,OAAI,CAAC,EAAW,GAAU,IAAA,EAA4B,EAAE;IAEtD,IAAM,IAAc,IAAW,IAAI,IAAI,IAAI,IAAW,GAChD,IAAsB,EAAU,MAAM,GAAa;AAGzD,IAAK,EAAW,GAFU,IAAuB,IAAA,IAAwC,EAE1C,IAE7C,EAAW,IAAW,GAAG,EAAU,MAAM,IAAW,GAAG,SAAS,EAAE;;;AAKxE,MAAI,MAAQ,eACN,CAAC,EAAW,GAAU,IAAA,EAA4B,EAAE;GAItD,IAAM,IAAW,IAAA;AAGjB,GAAI,EAAU,QAAQ,KAAY,KAAA,IAA+B,MAE/D,EAAW,GAAU,EAAU,MAAM,GAAU,SAAS,EAAE,GAMrD,EAAW,IAAW,GAAG,EAAS,IAGhC,EAAW,GAAG,EAAS,IAC1B,EAAW,GAAG,EAAU,MAAM,GAAG,SAAS,EAAE;;AAWtD,EAJI,MAAQ,eACV,EAA4B,QAAQ,GAAU,EAAW,EAGvD,MAAQ,gBACV,EAA4B,SAAS,GAAU,EAAW;;AAI9D,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECvFH,IAAM,IAAQ,GAsER,IAAQ,GA0CR,EACJ,sBACA,gBACA,oBACA,gBACA,mBACA,eACA,kCACA,6BACE,IAAuB,EAMrB,IAAiB,EAAI,KAAK,EAM1B,IAAU,EAAI,KAAK,EAMnB,IAAmB,EAAI,KAAK,EAM5B,IAAY;GAAC;GAAiB;GAAU;GAAU;GAAQ;GAAY;GAAU;GAAW;GAAW;GAAS;GAAS,EAQxH,IAAY,QAAe;GAC/B,IAAI,IAAkB,EAAM,aAAa,KAAK,OAAW;IAAE;IAAO,KAAK,EAAI,KAAK;IAAE,EAAE;AAUpF,UARI,EAAM,sBAAsB,CAAC,EAAM,mBAAmB,WACxD,IAAkB,EAAM,aAAa,MAAM,EAAE,CAAC,KAAK,OAAW;IAAE;IAAO,KAAK,EAAI,KAAK;IAAE,EAAE,GAGvF,EAAM,gBAAgB,CAAC,EAAM,aAAa,UAC5C,EAAgB,KAAK,EAGhB;IACP,EAMI,IAAa,EAAI,EAAU,MAAM,GAAG,MAAM,EAU1C,IAAO,QAAe;GAC1B,IAAM,IAAkB,EAAM,mBAAmB,SAAS,EAAU,OAAO,GAAG,EAAU,MAAM,EAAE;AAMhG,UAJI,EAAM,gBAAgB,CAAC,EAAM,aAAa,UAC5C,EAAgB,KAAK,EAGhB;IACP,EAQI,IAAiB,EAAI,EAAE,CAAC,EAOxB,IAAgB,QACb;GACL,GAAG,EAAO,SAAS,EAAM;GACzB,GAAG,EAAO;GACV,GAAG,EAAO;GACV,GAAG,EAAO,WAAW,EAAM;GAC3B,GAAG,EAAO;GACV,GAAG,EAAO,UAAU,EAAM;GAC1B,GAAG,EAAO;GACV,GAAG,EAAO;GACX,CACD,EAKI,IAAkB,SAAe;AAGrC,GADA,EAAkB,QAAQ,EAAE,EAC5B,GAAyB;IACzB,EAKI,UAAqB;GACzB,IAAM,IAAY,EAAQ;AAI1B,GAAI,EAAU,YAAY,EAAU,gBAAgB,EAAU,gBAC5D,EAAM,wBAAwB;;AAiDlC,EAxCA,EAAM,SAAqB;AACzB,MAAyB;KACxB,EAAE,WAAW,IAAM,CAAC,EAMvB,QAAY,EAAM,0BACV;AACJ,KAAO,mBAAmB,EAAM;KAC/B,EAAE,WAAW,IAAM,CAAC,EAMzB,QAAY,EAAM,oBACV;AACJ,KAAO,SAAS,EAAM;KACrB,EAAE,WAAW,IAAM,CAAC,EAOzB,QAAY,EAAM,mBAAmB;AAUnC,GATA,GAAa,EACT,EAAM,cACR,EAAY,QAAQ,MAEpB,EAAY,QAAQ,IAGpB,EAAe,KAAK,GAEtB,GAAiB;IACjB,EAEF,QACQ,EAAM,iBACX,MAAQ;AACP,KAAY,EAAI,MAAM;KAExB,EAAE,MAAM,IAAM,CACf;EAED,SAAS,EAAY,GAAO,IAAU,IAAO;AAE3C,GADA,EAAgB,QAAQ,GACxB,EAAM,qBAAqB,EAAM;;EAOnC,SAAS,IAA2B;GAClC,IAAM,IAAY,EAAM,YAAY,aAAa;AAMjD,GALA,EAAe,QAAQ,EAAc,MAAM,QAAO,MAAO;IACvD,IAAM,IAAwB,EAAI,KAAK,aAAa,CAAC,SAAS,EAAU,EAClE,IAA2B,EAAI,SAAS,MAAK,MAAW,EAAQ,aAAa,CAAC,SAAS,EAAU,CAAC;AACxG,WAAO,KAAyB;KAChC,EACF,QAAe;AACb,IAAI,KACF,EAAW,EAAe,MAAM,IAAI,GAAK;KAE3C;;EAGJ,SAAS,GAAU,GAAI,IAAQ,KAAK;GAClC,IAAI;AAEJ,WAAQ,GAAG,MAAS;AAElB,IADA,aAAa,EAAQ,EACrB,IAAU,iBAAiB,EAAG,GAAG,EAAK,EAAE,EAAM;;;EAIlD,SAAS,GAAW,GAAO;AAKvB,UAHE,EAAM,aACD,EAAM,QAEN,IAAU,EAAM,oBAAoB;;EAO/C,SAAS,EAAkB,GAAO;AAChC,KAAM,OAAO,WAAW,MAAM,UAAU;;EAM1C,SAAS,EAAa,GAAU,IAAkB,IAAM;GAEtD,IAAM,IADW,EAAU,MAAM,IAAW,GAChB,IAAI,MAAM;AAEtC,WAAe;IACb,IAAM,IAAY,EAAQ;AAK1B,IAFA,EAAU,YAFQ,MAAa,IAAI,IAAI,EAAW,YAAY,IAI1D,KACF,EAAY,IAAW,GAAI,EAAE;KAE/B;;EAGJ,SAAS,IAAe;GACtB,IAAM,IAAY,EAAQ;AAE1B,KAAU,YAAY;;EAGxB,SAAS,IAA2B;AAClC,KAAQ,MAAM,iBAAiB,UAAU,EAAa;;EAQxD,SAAS,IAAuB;AA2C9B,GAtCA,EAAiB,QAAQ,IAAI,qBAAqB,OAAO,MAAY;AAEnE,MAAQ,SAAQ,MAAS;KACvB,IAAM,EAAE,cAAW,GACb,IAAQ,SAAS,EAAO,QAAQ,MAAM;AAe5C,KAAI,EAAM,kBAAkB,EAAO,aAAa,EAAe,MAAM,YAAY,MAC/E,EAAW,QAAQ,EAAU,MAAM,IAAQ,IAAI,SAAS,EAAU,MAAM,IAAI,OAC5E,EAAM,mBAAmB,IAAQ,EAAE,IAC1B,EAAM,mBAAmB,UAAU,EAAe,OAAO,uBAAuB,CAAC,UAC1F,EAAM,mBAAmB,EAAM,EAC/B,EAAW,QAAQ,EAAU,MAAM,IAAQ,SAClC,MAAU,MACnB,EAAM,mBAAmB,EAAM,EAC/B,EAAW,QAAQ,EAAU,MAAM,IAAI;MAEzC;KACF,EAMF,EAAiB,MAAM,QAAQ,EAAe,MAAM,EAEpD,MAAM,KAAK,EAAQ,MAAM,SAAS,CAAC,SAAS,GAAO,MAAU;AAE3D,IADA,EAAiB,MAAM,QAAQ,EAAM,EACrC,EAAM,QAAQ,QAAQ;KACtB;;EAGJ,IAAM,KAA+B,GAAO,GAAY,MAAU;AAGhE,OAFA,EAAM,gBAAgB,EAElB,OAAO,OAAO,EAAW,CAAC,SAAS,EAAM,IAAI,EAAE;AACjD,MAA8B,EAAM,KAAK,EAAW;AACpD;;AAGF,WAAQ,EAAM,KAAd;IACE,KAAK;AACH,OAAM,sBAAsB;AAC5B;IACF,KAAK;AACH,OAAY,GAAO,EAAM;AACzB;IACF,QACE;;KAKA,MAAiB,GAAO,GAAU,GAAY,MAAU;AAG5D,OAFA,EAAM,gBAAgB,EAElB,OAAO,OAAO,EAAW,CAAC,SAAS,EAAM,IAAI,EAAE;AACjD,MAAsB,EAAM,KAAK,GAAU,EAAW;AACtD;;AAGF,WAAQ,EAAM,KAAd;IACE,KAAK;AACH,KAAI,EAAM,WACJ,EAAW,GAAU,EAAE,IAAI,IAAW,IACxC,EAAY,GAAU,GAAK,IAE3B,EAAY,GAAG,GAAM,EACrB,EAAM,qBAAqB,IAGzB,EAAW,IAAW,GAAG,EAAE,GAC7B,EAAY,IAAW,IAAI,GAAG,GAAM,GAGpC,EAAM,sBAAsB;AAGhC;IAEF,KAAK;AACH,OAAY,GAAO,EAAM;AACzB;IAEF,QACE;;;EAIN,SAAS,EAAa,GAAO,GAAO;AAClC,KAAM,kBAAkB;IAAE,GAAG;IAAO,WAAW,EAAM;IAAU,CAAC;;EAGlE,SAAS,EAAgB,GAAO;AAC9B,KAAM,qBAAqB,EAAM;;EAGnC,SAAS,KAAsB;AAC7B,KAAW,GAAG,EAAE;;EAGlB,SAAS,KAAkB;AACzB,KAAY,EAAK,MAAM,QAAQ,GAAK;;SAGtC,QAAgB;AAEd,GADA,GAAqB,EACrB,GAAyB;IACzB,EAEF,QAAsB;AAEpB,GADA,EAAiB,MAAM,YAAY,EACnC,EAAQ,MAAM,oBAAoB,UAAU,EAAa;IACzD,EAEF,EAAa;GACX;GACA;GACD,CAAC,kBAzmBA,EAkGM,OAlGN,IAkGM,CA/FJ,EA8FM,OAAA;GA7FJ,IAAG;YACC;GAAJ,KAAI;GACJ,OAAM;;GAGE,EAAA,eAAA,GAAA,EADR,EAKI,KALJ,IAKI,EADC,EAAA,MAAe,SAAM,IAAO,EAAA,qBAAqB,EAAA,qBAAoB,EAAA,EAAA,KAAA,GAAA,EAE1E,EAQM,OAAA;;aANA;IAAJ,KAAI;IACJ,OAAM;OAEN,EAEI,KAAA,MAAA,EADC,EAAA,MAAU,EAAA,EAAA,CAAA,EAAA,IAAA;WAGjB,EAuCM,GAAA,MAAA,EAtC2B,EAAA,QAAvB,GAAU,cADpB,EAuCM,OAAA;IApCH,KAAK;;IACL,KAAK,EAAS;IACf,OAAM;OAGE,KAAA,GAAA,EADR,EAII,KAAA,IAAA,EADC,EAAS,MAAK,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,EAEnB,EA0BM,OA1BN,IA0BM,EAAA,EAAA,GAAA,EAvBJ,EAsBS,GAAA,MAAA,EApBN,EAAA,EAAM,CAAC,EAAA,MAAK,KAAY,EAAA,YAAY,EAAA,EAAM,CAAC,EAAA,MAAK,KAAY,EAAA,YAAY,EAAA,EAAM,CAAC,EAAA,MAAK,MAD7E,GAAO,YADjB,EAsBS,UAAA;IAnBN,KAAK,EAAM;;IACX,MAAK,MAAE;AAAA,KAAU,KAAI,EAAA,EAAW,CAAC,GAAI,GAAU,EAAU;;IAC1D,MAAK;IACJ,cAAY,EAAM;IAClB,UAAO,MAAS,EAAY,GAAO,EAAK;IACxC,YAAO,MAAE,EAAe,EAAK;IAC7B,YAAQ,EAAA,OAAA,EAAA,MAAA,MAAE,EAAc,KAAA;IACxB,cAAS,MAAE,EAAe,EAAK;IAC/B,cAAU,EAAA,OAAA,EAAA,MAAA,MAAE,EAAc,KAAA;IAC1B,YAAS,MAAS,GAAc,GAAO,GAAU,GAAY,EAAK;OAEnE,EAOC,OAAA;IANC,OAAM;IACL,KAAK,EAAM;IACX,cAAY,EAAM;IAClB,OAAO,EAAM;IACb,KAAK,GAAU,EAAK;IACpB,SAAO;mDAjCL,EAAA,YAAW,CAAA,CAAA;GAuCd,EAAA,eAAA,GAAA,EADR,EAiCM,OAjCN,IAiCM,CA7BJ,EA4BM,OA5BN,IA4BM,EAAA,EAAA,GAAA,EAxBJ,EAuBS,GAAA,MAAA,EAtBkB,EAAA,QAAjB,GAAO,YADjB,EAuBS,UAAA;IArBN,KAAK,EAAM;;IACX,MAAK,MAAE;AAAA,KAAU,KAAI,EAAA,EAAc,CAAC,GAAI,EAAK;;IAC9C,MAAK;IACJ,cAAY,EAAM;IAClB,OAAK,EAAA,EAAA,eAAkC,MAAK,KAAU,EAAA,EAAe,EAAA,CAAA;IAGrE,UAAO,MAAS,EAAY,GAAO,EAAK;IACxC,YAAO,MAAE,EAAe,EAAK;IAC7B,YAAQ,EAAA,OAAA,EAAA,MAAA,MAAE,EAAc,KAAA;IACxB,cAAS,MAAE,EAAW,EAAK;IAC3B,cAAU,EAAA,OAAA,EAAA,MAAA,MAAE,EAAU,KAAA;IACtB,YAAS,MAAS,EAA4B,GAAO,GAAO,EAAK;OAElE,EAMC,OAAA;IALC,OAAM;IACL,KAAK,EAAM;IACX,cAAY,EAAM;IAClB,OAAO,EAAM;IACb,KAAG,GAAK,EAAA,EAAO,GAAG,EAAM,kBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECnCxD,IAAM,IAAQ,GAsBR,IAAQ,GAWR,IAAW;GACf;IACE,MAAM;IACN,gBAAgB;IAChB,UAAU,EAAiC;IAC3C,UAAU;IACX;GACD;IACE,MAAM;IACN,gBAAgB;IAChB,UAAU,EAAiC;IAC3C,UAAU;IACX;GACD;IACE,MAAM;IACN,gBAAgB;IAChB,UAAU,EAAiC;IAC3C,UAAU;IACX;GACD;IACE,MAAM;IACN,gBAAgB;IAChB,UAAU,EAAiC;IAC3C,UAAU;IACX;GACD;IACE,MAAM;IACN,gBAAgB;IAChB,UAAU,EAAiC;IAC3C,UAAU;IACX;GACD;IACE,MAAM;IACN,gBAAgB;IAChB,UAAU,EAAiC;IAC3C,UAAU;IACX;GACF,EAEK,IAAS,EAAI,GAAM,EAEnB,IAAkB,EAAI,KAAK,EAE3B,IAAW,EAAI,EAAE,CAAC;AAKxB,UACQ,EAAM,eAAe,EAAO,QAAQ,IAC3C;EAMD,IAAM,IAAe,QAAe,EAAS,MAAM,MAAS,EAAK,aAAa,EAAM,SAAS,CAAC,EACxF,IAAe,EAAI,EAAa,MAAM;AAC5C,UAAkB,EAAa,UAAU,EAAa,QAAQ,EAAa,OAAO;EAElF,SAAS,EAAa,GAAK;AACzB,KAAS,MAAM,KAAK,EAAI;;EAE1B,SAAS,IAAqB;AAC5B,KAAgB,MAAM,OAAO;;EAG/B,SAAS,EAAY,GAAM;AAIzB,GAHA,EAAa,QAAQ,GACrB,EAAO,QAAQ,IACf,EAAM,aAAa,EAAK,SAAS,EACjC,QAAe,GAAmB,CAAC;;EAGrC,IAAM,KAAiB,GAAO,GAAM,MAAU;AAkB5C,GAjBA,EAAM,gBAAgB,EAElB,EAAM,QAAQ,gBACZ,MAAU,KAAG,EAAS,MAAM,EAAS,MAAM,SAAS,IAAI,OAAO,EACnE,EAAS,MAAM,IAAQ,IAAI,OAAO,GAGhC,EAAM,QAAQ,gBAChB,EAAS,MAAM,IAAQ,IAAI,OAAO,EAGhC,EAAM,QAAQ,YACZ,IAAQ,EAAW,EAAK,GAC1B,GAAgB,GAIhB,EAAM,QAAQ,UACZ,EAAM,WACR,EAAM,mBAAmB,GAEzB,EAAM,eAAe;;EAK3B,SAAS,IAAkB;AAEzB,GADA,EAAO,QAAQ,CAAC,EAAO,OACvB,QAAe,EAAS,MAAM,GAAG,OAAO,CAAC;;SAG3C,EAAa,EACX,sBACD,CAAC,kBAtMA,EAiDM,OAjDN,IAiDM,CAAA,EAhDJ,EAsBM,OAtBN,GAsBM,EAAA,GAAA,EAlBJ,EAiBS,GAAA,MAAA,EAhBiB,IAAhB,GAAM,MADhB,EAiBS,UAAA;;GAfN,MAAK,MAAE;AAAA,IAAU,KAAI,EAAY,EAAE;;GACnC,KAAK,EAAK;GACV,OAAK,EAAA,EAAA,UAA0B,EAAA,MAAa,aAAa,EAAK,UAAA,CAAA;GAG9D,YAAS,MAAS,EAAc,GAAO,GAAM,EAAK;GAClD,UAAK,MAAE,EAAW,EAAI;MAEvB,EAMC,OAAA;GALC,OAAM;GACL,KAAK,EAAK;GACV,cAAY,EAAK;GACjB,OAAO,EAAK;GACZ,KAAG,GAAK,EAAA,EAAO,GAAG,EAAK,eAAc;+CAlBlC,EAAA,MAAM,CAAA,CAAA,EAAA,EAsBhB,EAwBM,OAxBN,IAwBM,CApBJ,EAmBa,EAAA,EAAA,EAAA,EAnBD,WAAU,WAAS,EAAA;GAElB,QAAM,QAeN,CAdT,EAcS,UAAA;aAbH;IAAJ,KAAI;IACH,cAAY,EAAA;IACb,UAAS;IACR,SAAO;IACP,WAAO,EAAA,OAAA,EAAA,MAAE,MAAS,EAAc,EAAK;OAEtC,EAMC,OAAA;IALC,OAAM;IACL,KAAK,EAAA,MAAa;IAClB,cAAY,EAAA,MAAa;IACzB,OAAO,EAAA,MAAa;IACpB,KAAG,GAAK,EAAA,EAAO,GAAG,EAAA,MAAa,eAAc;;oBAdhB,CAAA,EAAA,EAAjC,EAAA,+BAA8B,GAAG,KACpC,EAAA,CAAA,CAAA;;mBALO,EAAA,MAAM,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;ECGrB,SAAS,EAAW,GAAO;AAIvB,UAHE,EAAM,aACD,EAAM,QAEN,GAAG,IAAU,EAAM,kBAAkB;;yBAhC9C,EAUM,OAVN,IAUM,CARI,EAAA,SAAA,GAAA,EADR,EAOC,OAAA;;GALC,OAAM;GACL,KAAK,EAAA,MAAM;GACX,cAAY,EAAA,MAAM;GAClB,OAAO,EAAA,MAAM;GACb,KAAK,EAAU,EAAA,MAAK;gCAEvB,EAA4B,OAAA,MAAA,EAApB,EAAA,OAAO,KAAI,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC2EvB,IAAM,IAAQ,GA4ER,IAAQ,GAqCR,IAAsB,EAAI,EAAM,YAAY,MAAM,EAClD,IAAmB,EAAI,KAAK,EAC5B,IAAiB,EAAI,EAAE,CAAC,EAExB,IAAgB,EAAI,EAAE,EAEtB,IAAsB,QAAe,EAAM,oBAAoB,SAAS,EAAE,EAC1E,IAAsB,QAAe,EAAM,cAAc,SAAS,EAAE,EAEpE,IAAO,IAAI,GAAsB,EAEjC,IAAe;GACnB,EAAK,GAAG,mDAAmD;GAC3D,EAAK,GAAG,wDAAwD;GAChE,EAAK,GAAG,4CAA4C;GACpD,EAAK,GAAG,0CAA0C;GAClD,EAAK,GAAG,8CAA8C;GACtD,EAAK,GAAG,4CAA4C;GACpD,EAAK,GAAG,6CAA6C;GACrD,EAAK,GAAG,6CAA6C;GACrD,EAAK,GAAG,2CAA2C;GACnD,EAAK,GAAG,4CAA4C;GACrD,EAEK,IAAyB,EAAK,GAAG,iDAAiD,EAClF,IAAqB,EAAK,GAAG,6CAA6C,EAC1E,IAAuB,EAAK,GAAG,gDAAgD,EAC/E,IAAiC,EAAK,GAAG,2DAA2D,EACpG,IAAgB,EAAK,GAAG,wCAAwC;AAEtE,UACQ,EAAM,cACX,MAAa;AACZ,KAAoB,QAAQ;IAE/B;EAWD,SAAS,EAAwB,GAAO;AAEtC,GADA,EAAoB,QAAQ,IAC5B,EAAe,QAAQ;IAAE,GAAG,EAAe;IAAO;IAAO;;EAG3D,SAAS,EAAqB,GAAO;AACnC,KAAc,QAAQ;;EAGxB,SAAS,EAAwB,GAAO;AACtC,KAAiB,QAAQ;;yBA7PzB,EAuEM,OAvEN,IAuEM;GApEJ,EAeM,OAfN,IAeM,CAdJ,EAaE,GAAA;IAZA,KAAI;IACH,gBAAc,EAAA;IACd,0BAAwB,EAAA;IACxB,0BAAwB,EAAA;IACxB,mBAAiB,EAAA;IACjB,kBAAgB;IAChB,qBAAmB,EAAA,OAAA,EAAA,MAAA,MAAEC,EAAAA,MAAM,gBAAgB,mBAAiB;IAC5D,oBAAkB,EAAA,OAAA,EAAA,MAAA,MAAE,EAAA,aAAuBA,EAAAA,MAAM,eAAe,kBAAgB,GAAeA,EAAAA,MAAM,iBAAiB,oBAAkB;IAGxI,kBAAiB;IACjB,WAAO,EAAA,OAAA,EAAA,KAAA,GAAA,MAAM,EAAK,QAAA,EAAA,CAAA,MAAA,CAAA;;;;;;;GAGvB,EA6BM,OA7BN,IA6BM,CA3BI,EAAA,cAAA,GAAA,EADR,EASE,GAAA;;IAPA,KAAI;gBACK,EAAA;kDAAA,EAAmB,QAAA;IAC3B,4BAA0B,EAAA,EAAsB;IAChD,oBAAkB,EAAA,OAAA,EAAA,MAAA,MAAE,EAAK,kBAAmB,EAAA,MAAgB;IAC5D,eAAY,EAAA,OAAA,EAAA,MAAA,MAAEA,EAAAA,MAAM,UAAU,aAAW;IACzC,sBAAoB,EAAA,OAAA,EAAA,MAAA,MAAEA,EAAAA,MAAM,iBAAiB,oBAAkB;IAC/D,WAAO,EAAA,OAAA,EAAA,KAAA,GAAA,MAAM,EAAK,QAAA,EAAA,CAAA,MAAA,CAAA;yEAErB,EAiBE,GAAA;IAhBA,KAAI;IACH,gBAAc,EAAA;IACd,aAAW,EAAA;IACX,iBAAe;IACf,wBAAsB,EAAA,EAAkB;IACxC,2BAAyB,EAAA,EAAoB;IAC7C,wBAAsB,EAAA;IACtB,iBAAe,EAAA;IACf,mBAAiB,EAAA;IACjB,iBAAiB;IACjB,oBAAmB;IACnB,iBAAc,EAAA,OAAA,EAAA,MAAA,MAAE,EAAK,kBAAmB,EAAM;IAC9C,qBAAmB,EAAA,OAAA,EAAA,MAAA,MAAEA,EAAAA,MAAM,gBAAgB,mBAAiB;IAC5D,oBAAkB,EAAA,QAAA,EAAA,OAAA,MAAE,EAAA,aAAaA,EAAAA,MAAM,eAAe,kBAAgB,GAAKA,EAAAA,MAAM,UAAU,aAAW;IACtG,WAAO,EAAA,QAAA,EAAA,MAAA,GAAA,MAAM,EAAK,QAAA,EAAA,CAAA,MAAA,CAAA;IAClB,uBAAqB,EAAA,QAAA,EAAA,OAAA,MAAE,EAAK,wBAAA;;;;;;;;;;GAGjC,EAqBM,OArBN,IAqBM;IAnBI,EAAA,sBAAkB,CAAK,EAAA,SAAA,GAAA,EAD/B,EAQY,EAAA,EAAA,EAAA;;KANV,YAAW;KACV,cAAY,EAAA,EAAa;KAC1B,OAAM;KACL,SAAK,EAAA,QAAA,EAAA,OAAA,MAAE,EAAK,YAAA;;sBAEM,CAAA,EAAA,EAAhB,EAAA,EAAa,CAAA,EAAA,EAAA,CAAA,CAAA;;;IAElB,EAA+C,IAAA,EAA3B,OAAO,EAAA,OAAgB,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA;IAC3C,EASE,IAAA;KARA,KAAI;KACH,eAAW,CAAA,CAAI,EAAA;KACf,sCAAoC,EAAA,EAA8B;KAClE,aAAW,EAAA;KACX,YAAS,EAAA,QAAA,EAAA,OAAA,MAAE,EAAK,aAAc,EAAM;KACpC,eAAY,EAAA,QAAA,EAAA,OAAA,MAAEA,EAAAA,MAAM,UAAU,aAAW;KACzC,kBAAgB,EAAA,QAAA,EAAA,OAAA,MAAEA,EAAAA,MAAM,iBAAiB,gBAAc;KACvD,WAAO,EAAA,QAAA,EAAA,MAAA,GAAA,MAAM,EAAK,QAAA,EAAA,CAAA,MAAA,CAAA"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,6 @@ export * from './common/emoji';
6
6
  export * from './components/avatar';
7
7
  export * from './components/badge';
8
8
  export * from './components/banner';
9
- export * from './components/box';
10
9
  export * from './components/breadcrumbs';
11
10
  export * from './components/button';
12
11
  export * from './components/button_group';
@@ -24,7 +23,6 @@ export * from './components/emoji';
24
23
  export * from './components/emoji_picker';
25
24
  export * from './components/emoji_text_wrapper';
26
25
  export * from './components/empty_state';
27
- export * from './components/filter_pill';
28
26
  export * from './components/hovercard';
29
27
  export * from './components/icon';
30
28
  export * from './components/illustration';
@@ -39,26 +37,22 @@ export * from './components/list_item';
39
37
  export * from './components/list_item_group';
40
38
  export * from './components/loader';
41
39
  export * from './components/modal';
42
- export * from './components/mode_island';
43
40
  export * from './components/notice';
44
41
  export * from './components/pagination';
45
42
  export * from './components/popover';
46
43
  export * from './components/progress_circle';
47
44
  export * from './components/presence';
48
- export * from './components/prose';
49
45
  export * from './components/radio';
50
46
  export * from './components/radio_group';
51
47
  export * from './components/resizable';
52
48
  export * from './components/rich_text_editor';
53
49
  export * from './components/root_layout';
54
50
  export * from './components/scroller';
55
- export * from './components/segmented_control';
56
51
  export * from './components/select_menu';
57
52
  export * from './components/skeleton';
58
53
  export * from './components/split_button';
59
54
  export * from './components/stack';
60
55
  export * from './components/tab';
61
- export * from './components/text';
62
56
  export * from './components/toast';
63
57
  export * from './components/toggle';
64
58
  export * from './components/tooltip';
@@ -67,9 +61,6 @@ export * from './components/combobox_multi_select';
67
61
  export * from './components/combobox_with_popover';
68
62
  export * from './directives/tooltip_directive';
69
63
  export * from './directives/scrollbar_directive';
70
- export * from './directives/mode_directive';
71
- export * from './directives/focusgroup_directive';
72
- export * from './directives/focustrap_directive';
73
64
  export * from './recipes/buttons/callbar_button';
74
65
  export * from './recipes/buttons/callbar_button_with_popover';
75
66
  export * from './recipes/buttons/callbar_button_with_dropdown';
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../../attachment_carousel-wnZS3vEt.cjs`);exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../../attachment_carousel-BHxR7A76.cjs`);exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../attachment_carousel-1qxTI-NN.js";
1
+ import { t as e } from "../../attachment_carousel-CouFqFMw.js";
2
2
  export { e as default };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../attachment_carousel-wnZS3vEt.cjs`);exports.DtRecipeAttachmentCarousel=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../attachment_carousel-BHxR7A76.cjs`);exports.DtRecipeAttachmentCarousel=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../attachment_carousel-1qxTI-NN.js";
1
+ import { t as e } from "../../attachment_carousel-CouFqFMw.js";
2
2
  export { e as DtRecipeAttachmentCarousel };
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e={100:`d-avatar--size-100`,150:`d-avatar--size-150`,200:`d-avatar--size-200`,250:`d-avatar--size-250`,300:`d-avatar--size-300`,400:`d-avatar--size-400`,500:`d-avatar--size-500`,600:`d-avatar--size-600`,700:`d-avatar--size-700`,800:`d-avatar--size-800`,900:`d-avatar--size-900`,xs:`d-avatar--xs`,sm:`d-avatar--sm`,md:`d-avatar--md`,lg:`d-avatar--lg`,xl:`d-avatar--xl`},t={default:``,icon:`d-avatar__icon`,initials:`d-avatar__initials`},n={100:`d-avatar__presence--100`,150:`d-avatar__presence--150`,200:`d-avatar__presence--200`,250:`d-avatar__presence--250`,300:`d-avatar__presence--300`,400:`d-avatar__presence--400`,500:`d-avatar__presence--500`,xs:`d-avatar__presence--100`,sm:`d-avatar__presence--200`,md:`d-avatar__presence--md`,lg:`d-avatar__presence--lg`},r={NONE:``,BUSY:`busy`,AWAY:`away`,OFFLINE:`offline`,ACTIVE:`active`},i={100:`100`,150:`100`,200:`200`,250:`200`,300:`300`,400:`500`,500:`600`,600:`600`,700:`700`,800:`800`,900:`800`,xs:`100`,sm:`200`,md:`300`,lg:`500`,xl:`600`},a=[.45,.49,.54,.59,.64,.69,.74,.78,.82,.85],o=[.08,.12,.15,.17,.18,.17,.15,.12,.1,.08],s={1:0,2:30,3:60,4:90,5:120,6:150,7:180,8:210,9:240,10:270,11:300,12:330},c=12,l=10,u=e=>e>1;function d(e){let t=parseInt(e,10);if(isNaN(t))return null;let n=Math.floor(t/100),r=t%100/10;return n<1||n>12||!Number.isInteger(r)||r<0||r>=10?null:{family:n,variant:r}}function f(e){let t=0;if(e!=null)for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t&=t;else t=Math.floor(Math.random()*1e6);let n=Math.abs(t);return{family:n%12+1,variant:Math.floor(n/12)%10}}function p(e,t,n){let r=n*Math.PI/180,i=t*Math.cos(r),a=t*Math.sin(r),o=e+.3963377774*i+.2158037573*a,s=e-.1055613458*i-.0638541728*a,c=e-.0894841775*i-1.291485548*a,l=o*o*o,u=s*s*s,d=c*c*c,f=4.0767416621*l-3.3077115913*u+.2309699292*d,p=-1.2684380046*l+2.6097574011*u-.3413193965*d,m=-.0041960863*l-.7034186147*u+1.707614701*d;f=Math.max(0,Math.min(1,f)),p=Math.max(0,Math.min(1,p)),m=Math.max(0,Math.min(1,m));let h=e=>e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055;return f=Math.round(h(f)*255),p=Math.round(h(p)*255),m=Math.round(h(m)*255),`#`+[f,p,m].map(e=>e.toString(16).padStart(2,`0`)).join(``)}function m(e,t,n){let r=a[t],i=o[t];return p(r,i,(n+(s[e]??0))%360)}var h={AVATAR_SIZE_MODIFIERS:e,AVATAR_KIND_MODIFIERS:t,AVATAR_PRESENCE_SIZE_MODIFIERS:n,AVATAR_PRESENCE_STATES:r,AVATAR_ICON_SIZES:i,AVATAR_LIGHTNESS:a,AVATAR_CHROMA:o,AVATAR_HUE_OFFSETS:s,AVATAR_FAMILY_COUNT:12,AVATAR_VARIANT_COUNT:10,AVATAR_GROUP_VALIDATOR:u,colorToFamilyVariant:d,getRandomFamilyVariant:f,oklchToHex:p,computeAvatarHex:m};exports.AVATAR_CHROMA=o,exports.AVATAR_FAMILY_COUNT=c,exports.AVATAR_GROUP_VALIDATOR=u,exports.AVATAR_HUE_OFFSETS=s,exports.AVATAR_ICON_SIZES=i,exports.AVATAR_KIND_MODIFIERS=t,exports.AVATAR_LIGHTNESS=a,exports.AVATAR_PRESENCE_SIZE_MODIFIERS=n,exports.AVATAR_PRESENCE_STATES=r,exports.AVATAR_SIZE_MODIFIERS=e,exports.AVATAR_VARIANT_COUNT=l,exports.colorToFamilyVariant=d,exports.computeAvatarHex=m,exports.default=h,exports.getRandomFamilyVariant=f,exports.oklchToHex=p;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e={xs:`d-avatar--xs`,sm:`d-avatar--sm`,md:`d-avatar--md`,lg:`d-avatar--lg`,xl:`d-avatar--xl`},t={default:``,icon:`d-avatar__icon`,initials:`d-avatar__initials`},n={md:`d-avatar__presence--md`,lg:`d-avatar__presence--lg`},r={NONE:``,BUSY:`busy`,AWAY:`away`,OFFLINE:`offline`,ACTIVE:`active`},i={xs:`100`,sm:`200`,md:`300`,lg:`500`,xl:`600`},a=[`000`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`,`1000`,`1100`,`1200`,`1300`,`1400`,`1500`,`1600`,`1700`,`1800`],o=a.slice(1),s=e=>e>1,c={AVATAR_SIZE_MODIFIERS:e,AVATAR_KIND_MODIFIERS:t,AVATAR_PRESENCE_SIZE_MODIFIERS:n,AVATAR_PRESENCE_STATES:r,AVATAR_ICON_SIZES:i,AVATAR_COLORS:a,AVATAR_RANDOM_COLORS:o,AVATAR_GROUP_VALIDATOR:s};exports.AVATAR_COLORS=a,exports.AVATAR_GROUP_VALIDATOR=s,exports.AVATAR_ICON_SIZES=i,exports.AVATAR_KIND_MODIFIERS=t,exports.AVATAR_PRESENCE_SIZE_MODIFIERS=n,exports.AVATAR_PRESENCE_STATES=r,exports.AVATAR_RANDOM_COLORS=o,exports.AVATAR_SIZE_MODIFIERS=e,exports.default=c;
2
2
  //# sourceMappingURL=avatar-constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-constants.cjs","names":[],"sources":["../../../components/avatar/avatar_constants.js"],"sourcesContent":["export const AVATAR_SIZE_MODIFIERS = {\n // 11-size system: 100-500 support presence, 600-900 do not\n 100: 'd-avatar--size-100',\n 150: 'd-avatar--size-150',\n 200: 'd-avatar--size-200',\n 250: 'd-avatar--size-250',\n 300: 'd-avatar--size-300',\n 400: 'd-avatar--size-400',\n 500: 'd-avatar--size-500',\n 600: 'd-avatar--size-600',\n 700: 'd-avatar--size-700',\n 800: 'd-avatar--size-800',\n 900: 'd-avatar--size-900',\n // T-shirt sizes (deprecated aliases)\n xs: 'd-avatar--xs',\n sm: 'd-avatar--sm',\n md: 'd-avatar--md',\n lg: 'd-avatar--lg',\n xl: 'd-avatar--xl',\n};\n\nexport const AVATAR_KIND_MODIFIERS = {\n default: '',\n icon: 'd-avatar__icon',\n initials: 'd-avatar__initials',\n};\n\nexport const AVATAR_PRESENCE_SIZE_MODIFIERS = {\n // 11-size system: Only sizes 100-500 support presence\n 100: 'd-avatar__presence--100',\n 150: 'd-avatar__presence--150',\n 200: 'd-avatar__presence--200',\n 250: 'd-avatar__presence--250',\n 300: 'd-avatar__presence--300',\n 400: 'd-avatar__presence--400',\n 500: 'd-avatar__presence--500',\n // T-shirt sizes (deprecated)\n xs: 'd-avatar__presence--100',\n sm: 'd-avatar__presence--200',\n md: 'd-avatar__presence--md',\n lg: 'd-avatar__presence--lg',\n};\n\nexport const AVATAR_PRESENCE_STATES = {\n NONE: '',\n BUSY: 'busy',\n AWAY: 'away',\n OFFLINE: 'offline',\n ACTIVE: 'active',\n};\n\nexport const AVATAR_ICON_SIZES = {\n // 11-size system icon mappings\n 100: '100',\n 150: '100',\n 200: '200',\n 250: '200',\n 300: '300',\n 400: '500',\n 500: '600',\n 600: '600',\n 700: '700',\n 800: '800',\n 900: '800',\n // T-shirt sizes (deprecated aliases)\n xs: '100',\n sm: '200',\n md: '300',\n lg: '500',\n xl: '600',\n};\n\n// OKLCH Lightness scale (L) for avatar variants 0-9\n// Progresses from dark (0.45) to light (0.85)\nexport const AVATAR_LIGHTNESS = [\n 0.45, // variant 0\n 0.49, // variant 1\n 0.54, // variant 2\n 0.59, // variant 3\n 0.64, // variant 4\n 0.69, // variant 5\n 0.74, // variant 6\n 0.78, // variant 7\n 0.82, // variant 8\n 0.85, // variant 9\n];\n\n// OKLCH Chroma scale (C) for avatar variants 0-9\n// Bell curve: lower at extremes, peak in middle for best saturation\nexport const AVATAR_CHROMA = [\n 0.08, // variant 0\n 0.12, // variant 1\n 0.15, // variant 2\n 0.17, // variant 3\n 0.18, // variant 4\n 0.17, // variant 5\n 0.15, // variant 6\n 0.12, // variant 7\n 0.10, // variant 8\n 0.08, // variant 9\n];\n\n// Hue offsets for each family (1-12), 30° apart around the color wheel\nexport const AVATAR_HUE_OFFSETS = {\n 1: 0, // Red\n 2: 30, // Orange\n 3: 60, // Amber/Gold\n 4: 90, // Yellow-Green\n 5: 120, // Green\n 6: 150, // Teal\n 7: 180, // Cyan\n 8: 210, // Blue\n 9: 240, // Indigo\n 10: 270, // Purple\n 11: 300, // Magenta\n 12: 330, // Pink/Rose\n};\n\n// Number of families and variants\nexport const AVATAR_FAMILY_COUNT = 12;\nexport const AVATAR_VARIANT_COUNT = 10;\n\nexport const AVATAR_GROUP_VALIDATOR = (group) => group > 1;\n\n/**\n * Convert color code to family/variant\n * @param {string} colorCode - Color code (e.g., '540', '1020')\n * @returns {{ family: number, variant: number } | null} - Family (1-12) and variant (0-9)\n */\nexport function colorToFamilyVariant (colorCode) {\n const num = parseInt(colorCode, 10);\n if (isNaN(num)) return null;\n const family = Math.floor(num / 100);\n const variant = (num % 100) / 10;\n if (family < 1 || family > AVATAR_FAMILY_COUNT) return null;\n if (!Number.isInteger(variant) || variant < 0 || variant >= AVATAR_VARIANT_COUNT) return null;\n return { family, variant };\n}\n\n/**\n * Get a random family and variant\n * @param {string} [seed] - Optional seed for deterministic randomization\n * @returns {{ family: number, variant: number }}\n */\nexport function getRandomFamilyVariant (seed) {\n let hash = 0;\n if (seed != null) {\n for (let i = 0; i < seed.length; i++) {\n hash = ((hash << 5) - hash) + seed.charCodeAt(i);\n hash = hash & hash;\n }\n } else {\n hash = Math.floor(Math.random() * 1000000);\n }\n\n // Use absolute value to handle negative hashes\n const absHash = Math.abs(hash);\n const family = (absHash % AVATAR_FAMILY_COUNT) + 1; // 1-12\n const variant = Math.floor(absHash / AVATAR_FAMILY_COUNT) % AVATAR_VARIANT_COUNT; // 0-9\n\n return { family, variant };\n}\n\n/**\n * Convert OKLCH to hex color (for fallback browsers)\n * Uses sRGB approximation - may clip out-of-gamut colors\n * @param {number} l - Lightness (0-1)\n * @param {number} c - Chroma (0-0.4)\n * @param {number} h - Hue (0-360)\n * @returns {string} - Hex color string (e.g., '#ff5733')\n */\nexport function oklchToHex (l, c, h) {\n // Convert OKLCH to OKLab\n const hRad = (h * Math.PI) / 180;\n const a = c * Math.cos(hRad);\n const b = c * Math.sin(hRad);\n\n // OKLab to linear sRGB\n const l_ = l + 0.3963377774 * a + 0.2158037573 * b;\n const m_ = l - 0.1055613458 * a - 0.0638541728 * b;\n const s_ = l - 0.0894841775 * a - 1.2914855480 * b;\n\n const l3 = l_ * l_ * l_;\n const m3 = m_ * m_ * m_;\n const s3 = s_ * s_ * s_;\n\n let r = +4.0767416621 * l3 - 3.3077115913 * m3 + 0.2309699292 * s3;\n let g = -1.2684380046 * l3 + 2.6097574011 * m3 - 0.3413193965 * s3;\n let bl = -0.0041960863 * l3 - 0.7034186147 * m3 + 1.7076147010 * s3;\n\n // Clamp to [0, 1]\n r = Math.max(0, Math.min(1, r));\n g = Math.max(0, Math.min(1, g));\n bl = Math.max(0, Math.min(1, bl));\n\n // Linear to sRGB gamma\n const toSrgb = (x) => x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055;\n\n r = Math.round(toSrgb(r) * 255);\n g = Math.round(toSrgb(g) * 255);\n bl = Math.round(toSrgb(bl) * 255);\n\n return '#' + [r, g, bl].map(x => x.toString(16).padStart(2, '0')).join('');\n}\n\n/**\n * Compute fallback hex color for a given family, variant, and anchor hue\n * @param {number} family - Family number (1-12)\n * @param {number} variant - Variant number (0-9)\n * @param {number} anchorHue - Theme's anchor hue in degrees\n * @returns {string} - Hex color string\n */\nexport function computeAvatarHex (family, variant, anchorHue) {\n const l = AVATAR_LIGHTNESS[variant];\n const c = AVATAR_CHROMA[variant];\n const hueOffset = AVATAR_HUE_OFFSETS[family] ?? 0;\n const h = (anchorHue + hueOffset) % 360;\n return oklchToHex(l, c, h);\n}\n\nexport default {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_ICON_SIZES,\n AVATAR_LIGHTNESS,\n AVATAR_CHROMA,\n AVATAR_HUE_OFFSETS,\n AVATAR_FAMILY_COUNT,\n AVATAR_VARIANT_COUNT,\n AVATAR_GROUP_VALIDATOR,\n colorToFamilyVariant,\n getRandomFamilyVariant,\n oklchToHex,\n computeAvatarHex,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"avatar-constants.cjs","names":[],"sources":["../../../components/avatar/avatar_constants.js"],"sourcesContent":["export const AVATAR_SIZE_MODIFIERS = {\n xs: 'd-avatar--xs',\n sm: 'd-avatar--sm',\n md: 'd-avatar--md',\n lg: 'd-avatar--lg',\n xl: 'd-avatar--xl',\n};\n\nexport const AVATAR_KIND_MODIFIERS = {\n default: '',\n icon: 'd-avatar__icon',\n initials: 'd-avatar__initials',\n};\n\nexport const AVATAR_PRESENCE_SIZE_MODIFIERS = {\n md: 'd-avatar__presence--md',\n lg: 'd-avatar__presence--lg',\n};\n\nexport const AVATAR_PRESENCE_STATES = {\n NONE: '',\n BUSY: 'busy',\n AWAY: 'away',\n OFFLINE: 'offline',\n ACTIVE: 'active',\n};\n\nexport const AVATAR_ICON_SIZES = {\n xs: '100',\n sm: '200',\n md: '300',\n lg: '500',\n xl: '600',\n};\n\nexport const AVATAR_COLORS = [\n '000',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '1000',\n '1100',\n '1200',\n '1300',\n '1400',\n '1500',\n '1600',\n '1700',\n '1800',\n];\n\n// We do not use the color '000' (grey) in the randomized avatar colors, but it can still be set manually.\nexport const AVATAR_RANDOM_COLORS = AVATAR_COLORS.slice(1);\n\nexport const AVATAR_GROUP_VALIDATOR = (group) => group > 1;\n\nexport default {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_ICON_SIZES,\n AVATAR_COLORS,\n AVATAR_RANDOM_COLORS,\n AVATAR_GROUP_VALIDATOR,\n};\n"],"mappings":"+FAAA,IAAa,EAAwB,CACnC,GAAI,eACJ,GAAI,eACJ,GAAI,eACJ,GAAI,eACJ,GAAI,eACL,CAEY,EAAwB,CACnC,QAAS,GACT,KAAM,iBACN,SAAU,qBACX,CAEY,EAAiC,CAC5C,GAAI,yBACJ,GAAI,yBACL,CAEY,EAAyB,CACpC,KAAM,GACN,KAAM,OACN,KAAM,OACN,QAAS,UACT,OAAQ,SACT,CAEY,EAAoB,CAC/B,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACL,CAEY,EAAgB,CAC3B,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACD,CAGY,EAAuB,EAAc,MAAM,EAAE,CAE7C,EAA0B,GAAU,EAAQ,EAEzD,EAAe,CACb,wBACA,wBACA,iCACA,yBACA,oBACA,gBACA,uBACA,yBACD"}