@dialpad/dialtone 9.29.1 → 9.30.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 (864) hide show
  1. package/dist/css/dialtone.css +2 -2
  2. package/dist/tokens/css/variables-dark.css +1 -1
  3. package/dist/tokens/css/variables-expressive-dark.css +937 -0
  4. package/dist/tokens/css/variables-expressive-light.css +817 -0
  5. package/dist/tokens/css/{variables-cox-dark.css → variables-expressive-sm-dark.css} +68 -67
  6. package/dist/tokens/css/{variables-cox-light.css → variables-expressive-sm-light.css} +67 -66
  7. package/dist/tokens/css/variables-light.css +1 -1
  8. package/dist/tokens/css/variables-tmo-dark.css +1 -1
  9. package/dist/tokens/css/variables-tmo-light.css +1 -1
  10. package/dist/tokens/doc.json +21010 -294
  11. package/dist/tokens/less/variables-dark.less +1 -1
  12. package/dist/tokens/less/variables-expressive-dark.less +934 -0
  13. package/dist/tokens/less/variables-expressive-light.less +814 -0
  14. package/dist/tokens/less/{variables-cox-dark.less → variables-expressive-sm-dark.less} +67 -66
  15. package/dist/tokens/less/{variables-cox-light.less → variables-expressive-sm-light.less} +66 -65
  16. package/dist/tokens/less/variables-light.less +1 -1
  17. package/dist/tokens/less/variables-tmo-dark.less +1 -1
  18. package/dist/tokens/less/variables-tmo-light.less +1 -1
  19. package/dist/vue2/chunks/_plugin-vue2_normalizer-1aBeR4AK.js +59 -0
  20. package/dist/vue2/chunks/_plugin-vue2_normalizer-1aBeR4AK.js.map +1 -0
  21. package/dist/vue2/chunks/_plugin-vue2_normalizer-sOSkiPF3.js +60 -0
  22. package/dist/vue2/chunks/_plugin-vue2_normalizer-sOSkiPF3.js.map +1 -0
  23. package/dist/vue2/chunks/{dropdown-SMWaTWyF.js → dropdown-DTtcQEFC.js} +131 -84
  24. package/dist/vue2/chunks/{dropdown-SMWaTWyF.js.map → dropdown-DTtcQEFC.js.map} +1 -1
  25. package/dist/vue2/chunks/dropdown-IaLNHmVd.js +403 -0
  26. package/dist/vue2/chunks/{dropdown-zhMEz3bn.js.map → dropdown-IaLNHmVd.js.map} +1 -1
  27. package/dist/vue2/chunks/dropdown_constants-2pGCXy7m.js +8 -0
  28. package/dist/vue2/chunks/dropdown_constants-2pGCXy7m.js.map +1 -0
  29. package/dist/vue2/chunks/dropdown_constants-w1MXGC3Z.js +9 -0
  30. package/dist/vue2/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -0
  31. package/dist/vue2/chunks/{icon_constants-OpYAAKwF.js → icon_constants-Dy4MEUJL.js} +7 -6
  32. package/dist/vue2/chunks/{icon_constants-2S_OSQ1t.js.map → icon_constants-Dy4MEUJL.js.map} +1 -1
  33. package/dist/vue2/chunks/icon_constants-QYpmdE0R.js +16 -0
  34. package/dist/{vue3/chunks/icon_constants-2S_OSQ1t.js.map → vue2/chunks/icon_constants-QYpmdE0R.js.map} +1 -1
  35. package/dist/vue2/chunks/index-DUr1xHR0.js +442 -0
  36. package/dist/vue2/chunks/{index-2jPosQBn.js.map → index-DUr1xHR0.js.map} +1 -1
  37. package/dist/vue2/chunks/index-IA-Z8fgm.js +441 -0
  38. package/dist/vue2/chunks/{index-nIyl_PL6.js.map → index-IA-Z8fgm.js.map} +1 -1
  39. package/dist/{vue3/chunks/input-4UQWegUk.js → vue2/chunks/input-6kbd8Pju.js} +83 -60
  40. package/dist/vue2/chunks/{input-o-fc1X4b.js.map → input-6kbd8Pju.js.map} +1 -1
  41. package/dist/vue2/chunks/input-Axw-wFj2.js +295 -0
  42. package/dist/vue2/chunks/{input-1tm09l_-.js.map → input-Axw-wFj2.js.map} +1 -1
  43. package/dist/vue2/chunks/input_group-m3cWYUfI.js +143 -0
  44. package/dist/vue2/chunks/{input_group-zcAq3DQl.js.map → input_group-m3cWYUfI.js.map} +1 -1
  45. package/dist/vue2/chunks/{input_group-zcAq3DQl.js → input_group-qVZaS5Bb.js} +27 -24
  46. package/dist/vue2/chunks/{input_group-j2gTtc1C.js.map → input_group-qVZaS5Bb.js.map} +1 -1
  47. package/dist/vue2/chunks/keyboard_list_navigation-ScXhrxya.js +284 -0
  48. package/dist/vue2/chunks/{keyboard_list_navigation-N74Bpdq7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  49. package/dist/vue2/chunks/keyboard_list_navigation-fJnl_Iox.js +283 -0
  50. package/dist/{vue3/chunks/keyboard_list_navigation-F0O8nht0.js.map → vue2/chunks/keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  51. package/dist/vue2/chunks/link_constants-Huj7D_hm.js +22 -0
  52. package/dist/vue2/chunks/{link_constants-Kn6kP4i1.js.map → link_constants-Huj7D_hm.js.map} +1 -1
  53. package/dist/vue2/chunks/link_constants-nWVlXQBs.js +23 -0
  54. package/dist/{vue3/chunks/link_constants-Kn6kP4i1.js.map → vue2/chunks/link_constants-nWVlXQBs.js.map} +1 -1
  55. package/dist/vue2/chunks/list_item_constants-EiqkqZvP.js +13 -0
  56. package/dist/vue2/chunks/{list_item_constants-Tsz5CO1m.js.map → list_item_constants-EiqkqZvP.js.map} +1 -1
  57. package/dist/vue2/chunks/list_item_constants-u1xcN9Dd.js +14 -0
  58. package/dist/{vue3/chunks/list_item_constants-Tsz5CO1m.js.map → vue2/chunks/list_item_constants-u1xcN9Dd.js.map} +1 -1
  59. package/dist/vue2/chunks/modal-VgxXAQFP.js +105 -0
  60. package/dist/vue2/chunks/{modal-qEzlo0Sj.js.map → modal-VgxXAQFP.js.map} +1 -1
  61. package/dist/vue2/chunks/modal-XOr4kiNZ.js +106 -0
  62. package/dist/{vue3/chunks/modal-VuMFkZFH.js.map → vue2/chunks/modal-XOr4kiNZ.js.map} +1 -1
  63. package/dist/vue2/chunks/notice_action-IRUoLX2d.js +196 -0
  64. package/dist/vue2/chunks/{notice_action-u3ZKIhit.js.map → notice_action-IRUoLX2d.js.map} +1 -1
  65. package/dist/vue2/chunks/notice_action-P6uDyE9x.js +195 -0
  66. package/dist/vue2/chunks/{notice_action-9NmtQRai.js.map → notice_action-P6uDyE9x.js.map} +1 -1
  67. package/dist/vue2/chunks/notice_constants-7Qt2CQEY.js +7 -0
  68. package/dist/vue2/chunks/{notice_constants-mC6al2Dm.js.map → notice_constants-7Qt2CQEY.js.map} +1 -1
  69. package/dist/vue2/chunks/notice_constants-UXo9e3bS.js +6 -0
  70. package/dist/{vue3/chunks/notice_constants-mC6al2Dm.js.map → vue2/chunks/notice_constants-UXo9e3bS.js.map} +1 -1
  71. package/dist/vue2/chunks/popover_constants-JwBF9h1Z.js +143 -0
  72. package/dist/{vue3/chunks/popover_constants-hOEhklvr.js.map → vue2/chunks/popover_constants-JwBF9h1Z.js.map} +1 -1
  73. package/dist/vue2/chunks/popover_constants-Qkpb0yh2.js +144 -0
  74. package/dist/vue2/chunks/{popover_constants-hOEhklvr.js.map → popover_constants-Qkpb0yh2.js.map} +1 -1
  75. package/dist/vue2/chunks/sr_only_close_button-81bHIpPu.js +95 -0
  76. package/dist/vue2/chunks/{sr_only_close_button-ErijKGYR.js.map → sr_only_close_button-81bHIpPu.js.map} +1 -1
  77. package/dist/vue2/chunks/sr_only_close_button-ZaGdAHz7.js +94 -0
  78. package/dist/vue2/chunks/{sr_only_close_button-JGole5Xi.js.map → sr_only_close_button-ZaGdAHz7.js.map} +1 -1
  79. package/dist/vue2/chunks/stack_constants-HraCekPm.js +15 -0
  80. package/dist/vue2/chunks/{stack_constants-m9Ickqw0.js.map → stack_constants-HraCekPm.js.map} +1 -1
  81. package/dist/vue2/chunks/stack_constants-SMzMWnAQ.js +14 -0
  82. package/dist/{vue3/chunks/stack_constants-m9Ickqw0.js.map → vue2/chunks/stack_constants-SMzMWnAQ.js.map} +1 -1
  83. package/dist/vue2/chunks/tab-FcsV5VmK.js +386 -0
  84. package/dist/vue2/chunks/{tab-7hJQSLFx.js.map → tab-FcsV5VmK.js.map} +1 -1
  85. package/dist/vue2/chunks/tab-V4cb44Ry.js +387 -0
  86. package/dist/vue2/chunks/{tab-Qm9LVkYj.js.map → tab-V4cb44Ry.js.map} +1 -1
  87. package/dist/vue2/common/constants.cjs +60 -0
  88. package/dist/vue2/{lib → common}/constants.cjs.map +1 -1
  89. package/dist/{vue3/lib → vue2/common}/constants.js +25 -18
  90. package/dist/vue2/{lib → common}/constants.js.map +1 -1
  91. package/dist/vue2/common/dates.cjs +72 -0
  92. package/dist/{vue3/lib → vue2/common}/dates.cjs.map +1 -1
  93. package/dist/vue2/common/dates.js +72 -0
  94. package/dist/vue2/{lib → common}/dates.js.map +1 -1
  95. package/dist/vue2/common/emoji.cjs +163 -0
  96. package/dist/vue2/common/emoji.cjs.map +1 -0
  97. package/dist/vue2/common/emoji.js +168 -0
  98. package/dist/vue2/common/emoji.js.map +1 -0
  99. package/dist/vue2/common/mixins.cjs +17 -0
  100. package/dist/vue2/{lib → common}/mixins.cjs.map +1 -1
  101. package/dist/vue2/common/mixins.js +17 -0
  102. package/dist/vue2/common/utils.cjs +237 -0
  103. package/dist/vue2/{lib → common}/utils.cjs.map +1 -1
  104. package/dist/vue2/common/utils.js +237 -0
  105. package/dist/vue2/{lib → common}/utils.js.map +1 -1
  106. package/dist/vue2/common/validators.cjs +23 -0
  107. package/dist/vue2/{lib → common}/validators.cjs.map +1 -1
  108. package/dist/vue2/common/validators.js +23 -0
  109. package/dist/vue2/{lib → common}/validators.js.map +1 -1
  110. package/dist/vue2/dialtone-vue.cjs +372 -1
  111. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  112. package/dist/vue2/dialtone-vue.js +325 -324
  113. package/dist/vue2/dialtone-vue.js.map +1 -1
  114. package/dist/vue2/lib/attachment-carousel.cjs +260 -1
  115. package/dist/vue2/lib/attachment-carousel.cjs.map +1 -1
  116. package/dist/vue2/lib/attachment-carousel.js +96 -84
  117. package/dist/vue2/lib/attachment-carousel.js.map +1 -1
  118. package/dist/vue2/lib/avatar.cjs +399 -1
  119. package/dist/vue2/lib/avatar.cjs.map +1 -1
  120. package/dist/vue2/lib/avatar.js +111 -79
  121. package/dist/vue2/lib/avatar.js.map +1 -1
  122. package/dist/vue2/lib/badge.cjs +182 -1
  123. package/dist/vue2/lib/badge.cjs.map +1 -1
  124. package/dist/vue2/lib/badge.js +53 -38
  125. package/dist/vue2/lib/badge.js.map +1 -1
  126. package/dist/vue2/lib/banner.cjs +209 -2
  127. package/dist/vue2/lib/banner.cjs.map +1 -1
  128. package/dist/vue2/lib/banner.js +58 -47
  129. package/dist/vue2/lib/banner.js.map +1 -1
  130. package/dist/vue2/lib/breadcrumbs.cjs +146 -1
  131. package/dist/vue2/lib/breadcrumbs.cjs.map +1 -1
  132. package/dist/vue2/lib/breadcrumbs.js +57 -48
  133. package/dist/vue2/lib/breadcrumbs.js.map +1 -1
  134. package/dist/vue2/lib/button-group.cjs +47 -1
  135. package/dist/vue2/lib/button-group.cjs.map +1 -1
  136. package/dist/vue2/lib/button-group.js +21 -18
  137. package/dist/vue2/lib/button-group.js.map +1 -1
  138. package/dist/vue2/lib/button.cjs +349 -1
  139. package/dist/vue2/lib/button.cjs.map +1 -1
  140. package/dist/vue2/lib/button.js +98 -76
  141. package/dist/vue2/lib/button.js.map +1 -1
  142. package/dist/vue2/lib/callbar-button-with-popover.cjs +249 -1
  143. package/dist/vue2/lib/callbar-button-with-popover.cjs.map +1 -1
  144. package/dist/vue2/lib/callbar-button-with-popover.js +66 -50
  145. package/dist/vue2/lib/callbar-button-with-popover.js.map +1 -1
  146. package/dist/vue2/lib/callbar-button.cjs +182 -1
  147. package/dist/vue2/lib/callbar-button.cjs.map +1 -1
  148. package/dist/vue2/lib/callbar-button.js +42 -34
  149. package/dist/vue2/lib/callbar-button.js.map +1 -1
  150. package/dist/vue2/lib/callbox.cjs +146 -1
  151. package/dist/vue2/lib/callbox.cjs.map +1 -1
  152. package/dist/vue2/lib/callbox.js +38 -32
  153. package/dist/vue2/lib/callbox.js.map +1 -1
  154. package/dist/vue2/lib/card.cjs +73 -1
  155. package/dist/vue2/lib/card.cjs.map +1 -1
  156. package/dist/vue2/lib/card.js +22 -20
  157. package/dist/vue2/lib/card.js.map +1 -1
  158. package/dist/vue2/lib/checkbox-group.cjs +129 -1
  159. package/dist/vue2/lib/checkbox-group.cjs.map +1 -1
  160. package/dist/vue2/lib/checkbox-group.js +42 -29
  161. package/dist/vue2/lib/checkbox-group.js.map +1 -1
  162. package/dist/vue2/lib/checkbox.cjs +127 -1
  163. package/dist/vue2/lib/checkbox.cjs.map +1 -1
  164. package/dist/vue2/lib/checkbox.js +46 -35
  165. package/dist/vue2/lib/checkbox.js.map +1 -1
  166. package/dist/vue2/lib/chip.cjs +198 -1
  167. package/dist/vue2/lib/chip.cjs.map +1 -1
  168. package/dist/vue2/lib/chip.js +59 -45
  169. package/dist/vue2/lib/chip.js.map +1 -1
  170. package/dist/vue2/lib/codeblock.cjs +29 -2
  171. package/dist/vue2/lib/codeblock.cjs.map +1 -1
  172. package/dist/vue2/lib/codeblock.js +15 -14
  173. package/dist/vue2/lib/codeblock.js.map +1 -1
  174. package/dist/vue2/lib/collapsible.cjs +334 -1
  175. package/dist/vue2/lib/collapsible.cjs.map +1 -1
  176. package/dist/vue2/lib/collapsible.js +91 -68
  177. package/dist/vue2/lib/collapsible.js.map +1 -1
  178. package/dist/vue2/lib/combobox-multi-select.cjs +519 -1
  179. package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -1
  180. package/dist/vue2/lib/combobox-multi-select.js +223 -136
  181. package/dist/vue2/lib/combobox-multi-select.js.map +1 -1
  182. package/dist/vue2/lib/combobox-with-popover.cjs +384 -1
  183. package/dist/vue2/lib/combobox-with-popover.cjs.map +1 -1
  184. package/dist/vue2/lib/combobox-with-popover.js +130 -86
  185. package/dist/vue2/lib/combobox-with-popover.js.map +1 -1
  186. package/dist/vue2/lib/combobox.cjs +18 -1
  187. package/dist/vue2/lib/combobox.cjs.map +1 -1
  188. package/dist/vue2/lib/combobox.js +9 -9
  189. package/dist/vue2/lib/contact-info.cjs +145 -1
  190. package/dist/vue2/lib/contact-info.cjs.map +1 -1
  191. package/dist/vue2/lib/contact-info.js +34 -32
  192. package/dist/vue2/lib/contact-info.js.map +1 -1
  193. package/dist/vue2/lib/contact-row.cjs +205 -1
  194. package/dist/vue2/lib/contact-row.cjs.map +1 -1
  195. package/dist/vue2/lib/contact-row.js +42 -39
  196. package/dist/vue2/lib/contact-row.js.map +1 -1
  197. package/dist/vue2/lib/datepicker.cjs +662 -1
  198. package/dist/vue2/lib/datepicker.cjs.map +1 -1
  199. package/dist/vue2/lib/datepicker.js +330 -218
  200. package/dist/vue2/lib/datepicker.js.map +1 -1
  201. package/dist/vue2/lib/description-list.cjs +114 -1
  202. package/dist/vue2/lib/description-list.cjs.map +1 -1
  203. package/dist/vue2/lib/description-list.js +51 -19
  204. package/dist/vue2/lib/description-list.js.map +1 -1
  205. package/dist/vue2/lib/dropdown.cjs +45 -1
  206. package/dist/vue2/lib/dropdown.cjs.map +1 -1
  207. package/dist/vue2/lib/dropdown.js +27 -25
  208. package/dist/vue2/lib/dropdown.js.map +1 -1
  209. package/dist/vue2/lib/editor.cjs +555 -1
  210. package/dist/vue2/lib/editor.cjs.map +1 -1
  211. package/dist/vue2/lib/editor.js +191 -162
  212. package/dist/vue2/lib/editor.js.map +1 -1
  213. package/dist/vue2/lib/emoji-picker.cjs +1063 -1
  214. package/dist/vue2/lib/emoji-picker.cjs.map +1 -1
  215. package/dist/vue2/lib/emoji-picker.js +638 -374
  216. package/dist/vue2/lib/emoji-picker.js.map +1 -1
  217. package/dist/vue2/lib/emoji-row.cjs +88 -1
  218. package/dist/vue2/lib/emoji-row.cjs.map +1 -1
  219. package/dist/vue2/lib/emoji-row.js +46 -40
  220. package/dist/vue2/lib/emoji-row.js.map +1 -1
  221. package/dist/vue2/lib/emoji-text-wrapper.cjs +109 -1
  222. package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -1
  223. package/dist/vue2/lib/emoji-text-wrapper.js +49 -35
  224. package/dist/vue2/lib/emoji-text-wrapper.js.map +1 -1
  225. package/dist/vue2/lib/emoji.cjs +145 -1
  226. package/dist/vue2/lib/emoji.cjs.map +1 -1
  227. package/dist/vue2/lib/emoji.js +140 -5
  228. package/dist/vue2/lib/emoji.js.map +1 -1
  229. package/dist/vue2/lib/feed-item-row.cjs +213 -1
  230. package/dist/vue2/lib/feed-item-row.cjs.map +1 -1
  231. package/dist/vue2/lib/feed-item-row.js +71 -63
  232. package/dist/vue2/lib/feed-item-row.js.map +1 -1
  233. package/dist/vue2/lib/feed-pill.cjs +149 -1
  234. package/dist/vue2/lib/feed-pill.cjs.map +1 -1
  235. package/dist/vue2/lib/feed-pill.js +60 -51
  236. package/dist/vue2/lib/feed-pill.js.map +1 -1
  237. package/dist/vue2/lib/general-row.cjs +405 -1
  238. package/dist/vue2/lib/general-row.cjs.map +1 -1
  239. package/dist/vue2/lib/general-row.js +133 -106
  240. package/dist/vue2/lib/general-row.js.map +1 -1
  241. package/dist/vue2/lib/group-row.cjs +117 -1
  242. package/dist/vue2/lib/group-row.cjs.map +1 -1
  243. package/dist/vue2/lib/group-row.js +33 -30
  244. package/dist/vue2/lib/group-row.js.map +1 -1
  245. package/dist/vue2/lib/grouped-chip.cjs +45 -1
  246. package/dist/vue2/lib/grouped-chip.cjs.map +1 -1
  247. package/dist/vue2/lib/grouped-chip.js +28 -26
  248. package/dist/vue2/lib/grouped-chip.js.map +1 -1
  249. package/dist/vue2/lib/hovercard.cjs +227 -1
  250. package/dist/vue2/lib/hovercard.cjs.map +1 -1
  251. package/dist/vue2/lib/hovercard.js +98 -63
  252. package/dist/vue2/lib/hovercard.js.map +1 -1
  253. package/dist/vue2/lib/icon.cjs +59 -1
  254. package/dist/vue2/lib/icon.cjs.map +1 -1
  255. package/dist/vue2/lib/icon.js +22 -20
  256. package/dist/vue2/lib/icon.js.map +1 -1
  257. package/dist/vue2/lib/image-viewer.cjs +190 -1
  258. package/dist/vue2/lib/image-viewer.cjs.map +1 -1
  259. package/dist/vue2/lib/image-viewer.js +83 -62
  260. package/dist/vue2/lib/image-viewer.js.map +1 -1
  261. package/dist/vue2/lib/input-group.cjs +91 -1
  262. package/dist/vue2/lib/input-group.cjs.map +1 -1
  263. package/dist/vue2/lib/input-group.js +29 -27
  264. package/dist/vue2/lib/input-group.js.map +1 -1
  265. package/dist/vue2/lib/input.cjs +492 -1
  266. package/dist/vue2/lib/input.cjs.map +1 -1
  267. package/dist/vue2/lib/input.js +127 -89
  268. package/dist/vue2/lib/input.js.map +1 -1
  269. package/dist/vue2/lib/item-layout.cjs +40 -1
  270. package/dist/vue2/lib/item-layout.cjs.map +1 -1
  271. package/dist/vue2/lib/item-layout.js +15 -13
  272. package/dist/vue2/lib/item-layout.js.map +1 -1
  273. package/dist/vue2/lib/ivr-node.cjs +209 -1
  274. package/dist/vue2/lib/ivr-node.cjs.map +1 -1
  275. package/dist/vue2/lib/ivr-node.js +115 -99
  276. package/dist/vue2/lib/ivr-node.js.map +1 -1
  277. package/dist/vue2/lib/keyboard-shortcut.cjs +106 -1
  278. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
  279. package/dist/vue2/lib/keyboard-shortcut.js +42 -34
  280. package/dist/vue2/lib/keyboard-shortcut.js.map +1 -1
  281. package/dist/vue2/lib/lazy-show.cjs +80 -1
  282. package/dist/vue2/lib/lazy-show.cjs.map +1 -1
  283. package/dist/vue2/lib/lazy-show.js +20 -16
  284. package/dist/vue2/lib/lazy-show.js.map +1 -1
  285. package/dist/vue2/lib/link.cjs +70 -1
  286. package/dist/vue2/lib/link.cjs.map +1 -1
  287. package/dist/vue2/lib/link.js +22 -20
  288. package/dist/vue2/lib/link.js.map +1 -1
  289. package/dist/vue2/lib/list-item-group.cjs +60 -1
  290. package/dist/vue2/lib/list-item-group.cjs.map +1 -1
  291. package/dist/vue2/lib/list-item-group.js +19 -17
  292. package/dist/vue2/lib/list-item-group.js.map +1 -1
  293. package/dist/vue2/lib/list-item.cjs +204 -1
  294. package/dist/vue2/lib/list-item.cjs.map +1 -1
  295. package/dist/vue2/lib/list-item.js +67 -56
  296. package/dist/vue2/lib/list-item.js.map +1 -1
  297. package/dist/vue2/lib/message-input.cjs +554 -1
  298. package/dist/vue2/lib/message-input.cjs.map +1 -1
  299. package/dist/vue2/lib/message-input.js +174 -152
  300. package/dist/vue2/lib/message-input.js.map +1 -1
  301. package/dist/vue2/lib/modal.cjs +350 -2
  302. package/dist/vue2/lib/modal.cjs.map +1 -1
  303. package/dist/vue2/lib/modal.js +118 -90
  304. package/dist/vue2/lib/modal.js.map +1 -1
  305. package/dist/vue2/lib/notice.cjs +159 -1
  306. package/dist/vue2/lib/notice.cjs.map +1 -1
  307. package/dist/vue2/lib/notice.js +46 -43
  308. package/dist/vue2/lib/notice.js.map +1 -1
  309. package/dist/vue2/lib/pagination.cjs +152 -1
  310. package/dist/vue2/lib/pagination.cjs.map +1 -1
  311. package/dist/vue2/lib/pagination.js +60 -48
  312. package/dist/vue2/lib/pagination.js.map +1 -1
  313. package/dist/vue2/lib/popover.cjs +956 -1
  314. package/dist/vue2/lib/popover.cjs.map +1 -1
  315. package/dist/vue2/lib/popover.js +401 -221
  316. package/dist/vue2/lib/popover.js.map +1 -1
  317. package/dist/vue2/lib/presence.cjs +65 -1
  318. package/dist/vue2/lib/presence.cjs.map +1 -1
  319. package/dist/vue2/lib/presence.js +32 -26
  320. package/dist/vue2/lib/presence.js.map +1 -1
  321. package/dist/vue2/lib/radio-group.cjs +98 -1
  322. package/dist/vue2/lib/radio-group.cjs.map +1 -1
  323. package/dist/vue2/lib/radio-group.js +24 -22
  324. package/dist/vue2/lib/radio-group.js.map +1 -1
  325. package/dist/vue2/lib/radio.cjs +118 -1
  326. package/dist/vue2/lib/radio.cjs.map +1 -1
  327. package/dist/vue2/lib/radio.js +43 -35
  328. package/dist/vue2/lib/radio.js.map +1 -1
  329. package/dist/vue2/lib/rich-text-editor.cjs +1138 -1
  330. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -1
  331. package/dist/vue2/lib/rich-text-editor.js +574 -387
  332. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  333. package/dist/vue2/lib/root-layout.cjs +130 -1
  334. package/dist/vue2/lib/root-layout.cjs.map +1 -1
  335. package/dist/vue2/lib/root-layout.js +28 -24
  336. package/dist/vue2/lib/root-layout.js.map +1 -1
  337. package/dist/vue2/lib/select-menu.cjs +282 -1
  338. package/dist/vue2/lib/select-menu.cjs.map +1 -1
  339. package/dist/vue2/lib/select-menu.js +101 -61
  340. package/dist/vue2/lib/select-menu.js.map +1 -1
  341. package/dist/vue2/lib/settings-menu-button.cjs +65 -1
  342. package/dist/vue2/lib/settings-menu-button.cjs.map +1 -1
  343. package/dist/vue2/lib/settings-menu-button.js +26 -24
  344. package/dist/vue2/lib/settings-menu-button.js.map +1 -1
  345. package/dist/vue2/lib/skeleton.cjs +612 -1
  346. package/dist/vue2/lib/skeleton.cjs.map +1 -1
  347. package/dist/vue2/lib/skeleton.js +174 -135
  348. package/dist/vue2/lib/skeleton.js.map +1 -1
  349. package/dist/vue2/lib/stack.cjs +127 -1
  350. package/dist/vue2/lib/stack.cjs.map +1 -1
  351. package/dist/vue2/lib/stack.js +66 -56
  352. package/dist/vue2/lib/stack.js.map +1 -1
  353. package/dist/vue2/lib/tabs.cjs +99 -1
  354. package/dist/vue2/lib/tabs.cjs.map +1 -1
  355. package/dist/vue2/lib/tabs.js +42 -35
  356. package/dist/vue2/lib/tabs.js.map +1 -1
  357. package/dist/vue2/lib/time-pill.cjs +47 -1
  358. package/dist/vue2/lib/time-pill.cjs.map +1 -1
  359. package/dist/vue2/lib/time-pill.js +21 -16
  360. package/dist/vue2/lib/time-pill.js.map +1 -1
  361. package/dist/vue2/lib/toast.cjs +247 -1
  362. package/dist/vue2/lib/toast.cjs.map +1 -1
  363. package/dist/vue2/lib/toast.js +78 -55
  364. package/dist/vue2/lib/toast.js.map +1 -1
  365. package/dist/vue2/lib/toggle.cjs +177 -1
  366. package/dist/vue2/lib/toggle.cjs.map +1 -1
  367. package/dist/vue2/lib/toggle.js +46 -37
  368. package/dist/vue2/lib/toggle.js.map +1 -1
  369. package/dist/vue2/lib/tooltip-directive.cjs +87 -1
  370. package/dist/vue2/lib/tooltip-directive.cjs.map +1 -1
  371. package/dist/vue2/lib/tooltip-directive.js +55 -41
  372. package/dist/vue2/lib/tooltip-directive.js.map +1 -1
  373. package/dist/vue2/lib/tooltip.cjs +436 -1
  374. package/dist/vue2/lib/tooltip.cjs.map +1 -1
  375. package/dist/vue2/lib/tooltip.js +152 -90
  376. package/dist/vue2/lib/tooltip.js.map +1 -1
  377. package/dist/vue2/lib/top-banner-info.cjs +63 -1
  378. package/dist/vue2/lib/top-banner-info.cjs.map +1 -1
  379. package/dist/vue2/lib/top-banner-info.js +22 -18
  380. package/dist/vue2/lib/top-banner-info.js.map +1 -1
  381. package/dist/vue2/lib/unread-pill.cjs +63 -1
  382. package/dist/vue2/lib/unread-pill.cjs.map +1 -1
  383. package/dist/vue2/lib/unread-pill.js +25 -21
  384. package/dist/vue2/lib/unread-pill.js.map +1 -1
  385. package/dist/vue2/lib/validation-messages.cjs +85 -1
  386. package/dist/vue2/lib/validation-messages.cjs.map +1 -1
  387. package/dist/vue2/lib/validation-messages.js +32 -29
  388. package/dist/vue2/lib/validation-messages.js.map +1 -1
  389. package/dist/vue2/style.css +1214 -1
  390. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +2 -2
  391. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +2 -2
  392. package/dist/vue3/chunks/_plugin-vue_export-helper-caHeSgYY.js +11 -0
  393. package/dist/vue3/chunks/_plugin-vue_export-helper-caHeSgYY.js.map +1 -0
  394. package/dist/vue3/chunks/_plugin-vue_export-helper-fhnQq0tA.js +10 -0
  395. package/dist/vue3/chunks/_plugin-vue_export-helper-fhnQq0tA.js.map +1 -0
  396. package/dist/vue3/chunks/{dropdown-eWOvBvwq.js → dropdown-Hn-TeTvZ.js} +151 -104
  397. package/dist/vue3/chunks/{dropdown-UO3UJalk.js.map → dropdown-Hn-TeTvZ.js.map} +1 -1
  398. package/dist/vue3/chunks/dropdown-w8Do29L5.js +442 -0
  399. package/dist/vue3/chunks/{dropdown-eWOvBvwq.js.map → dropdown-w8Do29L5.js.map} +1 -1
  400. package/dist/vue3/chunks/dropdown_constants-2pGCXy7m.js +8 -0
  401. package/dist/vue3/chunks/dropdown_constants-2pGCXy7m.js.map +1 -0
  402. package/dist/vue3/chunks/dropdown_constants-w1MXGC3Z.js +9 -0
  403. package/dist/vue3/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -0
  404. package/dist/vue3/chunks/{icon_constants-OpYAAKwF.js → icon_constants-Dy4MEUJL.js} +7 -6
  405. package/dist/{vue2/chunks/icon_constants-OpYAAKwF.js.map → vue3/chunks/icon_constants-Dy4MEUJL.js.map} +1 -1
  406. package/dist/vue3/chunks/icon_constants-QYpmdE0R.js +16 -0
  407. package/dist/vue3/chunks/{icon_constants-OpYAAKwF.js.map → icon_constants-QYpmdE0R.js.map} +1 -1
  408. package/dist/vue3/chunks/index-We0ixqCH.js +446 -0
  409. package/dist/vue3/chunks/{index-b4iXYvId.js.map → index-We0ixqCH.js.map} +1 -1
  410. package/dist/vue3/chunks/index-xVEqMOTr.js +447 -0
  411. package/dist/vue3/chunks/{index-6tYeqbgP.js.map → index-xVEqMOTr.js.map} +1 -1
  412. package/dist/{vue2/chunks/input-1tm09l_-.js → vue3/chunks/input-NmYDD5bn.js} +83 -60
  413. package/dist/vue3/chunks/{input-0Uksk4DP.js.map → input-NmYDD5bn.js.map} +1 -1
  414. package/dist/vue3/chunks/input-ttnte8zB.js +295 -0
  415. package/dist/vue3/chunks/{input-4UQWegUk.js.map → input-ttnte8zB.js.map} +1 -1
  416. package/dist/vue3/chunks/input_group-M-D25pOJ.js +152 -0
  417. package/dist/vue3/chunks/{input_group-bBKaq3Wi.js.map → input_group-M-D25pOJ.js.map} +1 -1
  418. package/dist/vue3/chunks/{input_group-bBKaq3Wi.js → input_group-jWnq2DJT.js} +27 -24
  419. package/dist/vue3/chunks/{input_group-AS760Cp7.js.map → input_group-jWnq2DJT.js.map} +1 -1
  420. package/dist/vue3/chunks/keyboard_list_navigation-ScXhrxya.js +284 -0
  421. package/dist/vue3/chunks/{keyboard_list_navigation-N74Bpdq7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  422. package/dist/vue3/chunks/keyboard_list_navigation-fJnl_Iox.js +283 -0
  423. package/dist/{vue2/chunks/keyboard_list_navigation-F0O8nht0.js.map → vue3/chunks/keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  424. package/dist/vue3/chunks/link_constants-Huj7D_hm.js +22 -0
  425. package/dist/{vue2/chunks/link_constants-vIUB92L4.js.map → vue3/chunks/link_constants-Huj7D_hm.js.map} +1 -1
  426. package/dist/vue3/chunks/link_constants-nWVlXQBs.js +23 -0
  427. package/dist/vue3/chunks/{link_constants-vIUB92L4.js.map → link_constants-nWVlXQBs.js.map} +1 -1
  428. package/dist/vue3/chunks/list_item_constants-EiqkqZvP.js +13 -0
  429. package/dist/{vue2/chunks/list_item_constants-LTUc74pD.js.map → vue3/chunks/list_item_constants-EiqkqZvP.js.map} +1 -1
  430. package/dist/vue3/chunks/list_item_constants-u1xcN9Dd.js +14 -0
  431. package/dist/vue3/chunks/{list_item_constants-LTUc74pD.js.map → list_item_constants-u1xcN9Dd.js.map} +1 -1
  432. package/dist/vue3/chunks/modal-VgxXAQFP.js +105 -0
  433. package/dist/vue3/chunks/{modal-qEzlo0Sj.js.map → modal-VgxXAQFP.js.map} +1 -1
  434. package/dist/vue3/chunks/modal-XOr4kiNZ.js +106 -0
  435. package/dist/{vue2/chunks/modal-VuMFkZFH.js.map → vue3/chunks/modal-XOr4kiNZ.js.map} +1 -1
  436. package/dist/vue3/chunks/notice_action-WTucGhvr.js +222 -0
  437. package/dist/vue3/chunks/{notice_action-tJfD5Qw1.js.map → notice_action-WTucGhvr.js.map} +1 -1
  438. package/dist/vue3/chunks/notice_action-p-ePanW_.js +223 -0
  439. package/dist/vue3/chunks/{notice_action-jO199emq.js.map → notice_action-p-ePanW_.js.map} +1 -1
  440. package/dist/vue3/chunks/notice_constants-7Qt2CQEY.js +7 -0
  441. package/dist/{vue2/chunks/notice_constants-c--hBFQw.js.map → vue3/chunks/notice_constants-7Qt2CQEY.js.map} +1 -1
  442. package/dist/vue3/chunks/notice_constants-UXo9e3bS.js +6 -0
  443. package/dist/vue3/chunks/{notice_constants-c--hBFQw.js.map → notice_constants-UXo9e3bS.js.map} +1 -1
  444. package/dist/vue3/chunks/popover_constants-JwBF9h1Z.js +143 -0
  445. package/dist/{vue2/chunks/popover_constants-qjlEkroB.js.map → vue3/chunks/popover_constants-JwBF9h1Z.js.map} +1 -1
  446. package/dist/vue3/chunks/popover_constants-Qkpb0yh2.js +144 -0
  447. package/dist/vue3/chunks/{popover_constants-qjlEkroB.js.map → popover_constants-Qkpb0yh2.js.map} +1 -1
  448. package/dist/vue3/chunks/{sr_only_close_button-7O-Ev8uM.js → sr_only_close_button-3EdsV-dH.js} +28 -24
  449. package/dist/vue3/chunks/{sr_only_close_button-iD7s1Pbj.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
  450. package/dist/vue3/chunks/sr_only_close_button-xGrHFjwA.js +91 -0
  451. package/dist/vue3/chunks/{sr_only_close_button-7O-Ev8uM.js.map → sr_only_close_button-xGrHFjwA.js.map} +1 -1
  452. package/dist/vue3/chunks/stack_constants-HraCekPm.js +15 -0
  453. package/dist/{vue2/chunks/stack_constants-u7tNqGtc.js.map → vue3/chunks/stack_constants-HraCekPm.js.map} +1 -1
  454. package/dist/vue3/chunks/stack_constants-SMzMWnAQ.js +14 -0
  455. package/dist/vue3/chunks/{stack_constants-u7tNqGtc.js.map → stack_constants-SMzMWnAQ.js.map} +1 -1
  456. package/dist/vue3/chunks/tab-RTDgnD9-.js +391 -0
  457. package/dist/vue3/chunks/{tab-at7WWglk.js.map → tab-RTDgnD9-.js.map} +1 -1
  458. package/dist/vue3/chunks/tab-qc3f42Yp.js +390 -0
  459. package/dist/vue3/chunks/{tab-GQZFMq83.js.map → tab-qc3f42Yp.js.map} +1 -1
  460. package/dist/vue3/common/constants.cjs +60 -0
  461. package/dist/vue3/{lib → common}/constants.cjs.map +1 -1
  462. package/dist/{vue2/lib → vue3/common}/constants.js +25 -18
  463. package/dist/vue3/{lib → common}/constants.js.map +1 -1
  464. package/dist/vue3/common/dates.cjs +72 -0
  465. package/dist/{vue2/lib → vue3/common}/dates.cjs.map +1 -1
  466. package/dist/vue3/common/dates.js +72 -0
  467. package/dist/vue3/{lib → common}/dates.js.map +1 -1
  468. package/dist/vue3/common/emoji.cjs +163 -0
  469. package/dist/vue3/common/emoji.cjs.map +1 -0
  470. package/dist/vue3/common/emoji.js +168 -0
  471. package/dist/vue3/common/emoji.js.map +1 -0
  472. package/dist/vue3/common/mixins.cjs +17 -0
  473. package/dist/vue3/{lib → common}/mixins.cjs.map +1 -1
  474. package/dist/vue3/common/mixins.js +17 -0
  475. package/dist/vue3/common/utils.cjs +243 -0
  476. package/dist/vue3/{lib → common}/utils.cjs.map +1 -1
  477. package/dist/vue3/common/utils.js +243 -0
  478. package/dist/vue3/{lib → common}/utils.js.map +1 -1
  479. package/dist/vue3/common/validators.cjs +23 -0
  480. package/dist/vue3/{lib → common}/validators.cjs.map +1 -1
  481. package/dist/vue3/common/validators.js +23 -0
  482. package/dist/vue3/{lib → common}/validators.js.map +1 -1
  483. package/dist/vue3/dialtone-vue.cjs +373 -1
  484. package/dist/vue3/dialtone-vue.cjs.map +1 -1
  485. package/dist/vue3/dialtone-vue.js +328 -327
  486. package/dist/vue3/dialtone-vue.js.map +1 -1
  487. package/dist/vue3/lib/attachment-carousel.cjs +345 -1
  488. package/dist/vue3/lib/attachment-carousel.cjs.map +1 -1
  489. package/dist/vue3/lib/attachment-carousel.js +126 -108
  490. package/dist/vue3/lib/attachment-carousel.js.map +1 -1
  491. package/dist/vue3/lib/avatar.cjs +447 -1
  492. package/dist/vue3/lib/avatar.cjs.map +1 -1
  493. package/dist/vue3/lib/avatar.js +135 -101
  494. package/dist/vue3/lib/avatar.js.map +1 -1
  495. package/dist/vue3/lib/badge.cjs +206 -1
  496. package/dist/vue3/lib/badge.cjs.map +1 -1
  497. package/dist/vue3/lib/badge.js +64 -48
  498. package/dist/vue3/lib/badge.js.map +1 -1
  499. package/dist/vue3/lib/banner.cjs +242 -2
  500. package/dist/vue3/lib/banner.cjs.map +1 -1
  501. package/dist/vue3/lib/banner.js +81 -71
  502. package/dist/vue3/lib/banner.js.map +1 -1
  503. package/dist/vue3/lib/breadcrumbs.cjs +150 -1
  504. package/dist/vue3/lib/breadcrumbs.cjs.map +1 -1
  505. package/dist/vue3/lib/breadcrumbs.js +60 -52
  506. package/dist/vue3/lib/breadcrumbs.js.map +1 -1
  507. package/dist/vue3/lib/button-group.cjs +41 -1
  508. package/dist/vue3/lib/button-group.cjs.map +1 -1
  509. package/dist/vue3/lib/button-group.js +15 -14
  510. package/dist/vue3/lib/button-group.js.map +1 -1
  511. package/dist/vue3/lib/button.cjs +356 -1
  512. package/dist/vue3/lib/button.cjs.map +1 -1
  513. package/dist/vue3/lib/button.js +108 -88
  514. package/dist/vue3/lib/button.js.map +1 -1
  515. package/dist/vue3/lib/callbar-button-with-popover.cjs +322 -1
  516. package/dist/vue3/lib/callbar-button-with-popover.cjs.map +1 -1
  517. package/dist/vue3/lib/callbar-button-with-popover.js +101 -83
  518. package/dist/vue3/lib/callbar-button-with-popover.js.map +1 -1
  519. package/dist/vue3/lib/callbar-button.cjs +200 -1
  520. package/dist/vue3/lib/callbar-button.cjs.map +1 -1
  521. package/dist/vue3/lib/callbar-button.js +52 -45
  522. package/dist/vue3/lib/callbar-button.js.map +1 -1
  523. package/dist/vue3/lib/callbox.cjs +217 -1
  524. package/dist/vue3/lib/callbox.cjs.map +1 -1
  525. package/dist/vue3/lib/callbox.js +80 -67
  526. package/dist/vue3/lib/callbox.js.map +1 -1
  527. package/dist/vue3/lib/card.cjs +91 -1
  528. package/dist/vue3/lib/card.cjs.map +1 -1
  529. package/dist/vue3/lib/card.js +27 -27
  530. package/dist/vue3/lib/card.js.map +1 -1
  531. package/dist/vue3/lib/checkbox-group.cjs +115 -1
  532. package/dist/vue3/lib/checkbox-group.cjs.map +1 -1
  533. package/dist/vue3/lib/checkbox-group.js +34 -23
  534. package/dist/vue3/lib/checkbox-group.js.map +1 -1
  535. package/dist/vue3/lib/checkbox.cjs +156 -1
  536. package/dist/vue3/lib/checkbox.cjs.map +1 -1
  537. package/dist/vue3/lib/checkbox.js +72 -60
  538. package/dist/vue3/lib/checkbox.js.map +1 -1
  539. package/dist/vue3/lib/chip.cjs +235 -1
  540. package/dist/vue3/lib/chip.cjs.map +1 -1
  541. package/dist/vue3/lib/chip.js +84 -67
  542. package/dist/vue3/lib/chip.js.map +1 -1
  543. package/dist/vue3/lib/codeblock.cjs +23 -2
  544. package/dist/vue3/lib/codeblock.cjs.map +1 -1
  545. package/dist/vue3/lib/codeblock.js +13 -13
  546. package/dist/vue3/lib/codeblock.js.map +1 -1
  547. package/dist/vue3/lib/collapsible.cjs +398 -1
  548. package/dist/vue3/lib/collapsible.cjs.map +1 -1
  549. package/dist/vue3/lib/collapsible.js +123 -100
  550. package/dist/vue3/lib/collapsible.js.map +1 -1
  551. package/dist/vue3/lib/combobox-multi-select.cjs +589 -1
  552. package/dist/vue3/lib/combobox-multi-select.cjs.map +1 -1
  553. package/dist/vue3/lib/combobox-multi-select.js +270 -177
  554. package/dist/vue3/lib/combobox-multi-select.js.map +1 -1
  555. package/dist/vue3/lib/combobox-with-popover.cjs +452 -1
  556. package/dist/vue3/lib/combobox-with-popover.cjs.map +1 -1
  557. package/dist/vue3/lib/combobox-with-popover.js +172 -127
  558. package/dist/vue3/lib/combobox-with-popover.js.map +1 -1
  559. package/dist/vue3/lib/combobox.cjs +18 -1
  560. package/dist/vue3/lib/combobox.cjs.map +1 -1
  561. package/dist/vue3/lib/combobox.js +9 -9
  562. package/dist/vue3/lib/contact-info.cjs +205 -1
  563. package/dist/vue3/lib/contact-info.cjs.map +1 -1
  564. package/dist/vue3/lib/contact-info.js +69 -60
  565. package/dist/vue3/lib/contact-info.js.map +1 -1
  566. package/dist/vue3/lib/contact-row.cjs +246 -1
  567. package/dist/vue3/lib/contact-row.cjs.map +1 -1
  568. package/dist/vue3/lib/contact-row.js +67 -63
  569. package/dist/vue3/lib/contact-row.js.map +1 -1
  570. package/dist/vue3/lib/datepicker.cjs +854 -1
  571. package/dist/vue3/lib/datepicker.cjs.map +1 -1
  572. package/dist/vue3/lib/datepicker.js +585 -441
  573. package/dist/vue3/lib/datepicker.js.map +1 -1
  574. package/dist/vue3/lib/description-list.cjs +116 -1
  575. package/dist/vue3/lib/description-list.cjs.map +1 -1
  576. package/dist/vue3/lib/description-list.js +56 -24
  577. package/dist/vue3/lib/description-list.js.map +1 -1
  578. package/dist/vue3/lib/dropdown.cjs +36 -1
  579. package/dist/vue3/lib/dropdown.cjs.map +1 -1
  580. package/dist/vue3/lib/dropdown.js +22 -21
  581. package/dist/vue3/lib/dropdown.js.map +1 -1
  582. package/dist/vue3/lib/editor.cjs +711 -1
  583. package/dist/vue3/lib/editor.cjs.map +1 -1
  584. package/dist/vue3/lib/editor.js +271 -235
  585. package/dist/vue3/lib/editor.js.map +1 -1
  586. package/dist/vue3/lib/emoji-picker.cjs +1277 -1
  587. package/dist/vue3/lib/emoji-picker.cjs.map +1 -1
  588. package/dist/vue3/lib/emoji-picker.js +859 -569
  589. package/dist/vue3/lib/emoji-picker.js.map +1 -1
  590. package/dist/vue3/lib/emoji-row.cjs +128 -1
  591. package/dist/vue3/lib/emoji-row.cjs.map +1 -1
  592. package/dist/vue3/lib/emoji-row.js +89 -75
  593. package/dist/vue3/lib/emoji-row.js.map +1 -1
  594. package/dist/vue3/lib/emoji-text-wrapper.cjs +102 -1
  595. package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -1
  596. package/dist/vue3/lib/emoji-text-wrapper.js +42 -31
  597. package/dist/vue3/lib/emoji-text-wrapper.js.map +1 -1
  598. package/dist/vue3/lib/emoji.cjs +157 -1
  599. package/dist/vue3/lib/emoji.cjs.map +1 -1
  600. package/dist/vue3/lib/emoji.js +152 -6
  601. package/dist/vue3/lib/emoji.js.map +1 -1
  602. package/dist/vue3/lib/feed-item-row.cjs +296 -1
  603. package/dist/vue3/lib/feed-item-row.cjs.map +1 -1
  604. package/dist/vue3/lib/feed-item-row.js +119 -100
  605. package/dist/vue3/lib/feed-item-row.js.map +1 -1
  606. package/dist/vue3/lib/feed-pill.cjs +173 -1
  607. package/dist/vue3/lib/feed-pill.cjs.map +1 -1
  608. package/dist/vue3/lib/feed-pill.js +70 -57
  609. package/dist/vue3/lib/feed-pill.js.map +1 -1
  610. package/dist/vue3/lib/general-row.cjs +518 -1
  611. package/dist/vue3/lib/general-row.cjs.map +1 -1
  612. package/dist/vue3/lib/general-row.js +186 -148
  613. package/dist/vue3/lib/general-row.js.map +1 -1
  614. package/dist/vue3/lib/group-row.cjs +116 -1
  615. package/dist/vue3/lib/group-row.cjs.map +1 -1
  616. package/dist/vue3/lib/group-row.js +37 -35
  617. package/dist/vue3/lib/group-row.js.map +1 -1
  618. package/dist/vue3/lib/grouped-chip.cjs +96 -1
  619. package/dist/vue3/lib/grouped-chip.cjs.map +1 -1
  620. package/dist/vue3/lib/grouped-chip.js +51 -46
  621. package/dist/vue3/lib/grouped-chip.js.map +1 -1
  622. package/dist/vue3/lib/hovercard.cjs +223 -1
  623. package/dist/vue3/lib/hovercard.cjs.map +1 -1
  624. package/dist/vue3/lib/hovercard.js +115 -80
  625. package/dist/vue3/lib/hovercard.js.map +1 -1
  626. package/dist/vue3/lib/icon.cjs +58 -1
  627. package/dist/vue3/lib/icon.cjs.map +1 -1
  628. package/dist/vue3/lib/icon.js +20 -20
  629. package/dist/vue3/lib/icon.js.map +1 -1
  630. package/dist/vue3/lib/image-viewer.cjs +243 -1
  631. package/dist/vue3/lib/image-viewer.cjs.map +1 -1
  632. package/dist/vue3/lib/image-viewer.js +104 -80
  633. package/dist/vue3/lib/image-viewer.js.map +1 -1
  634. package/dist/vue3/lib/input-group.cjs +91 -1
  635. package/dist/vue3/lib/input-group.cjs.map +1 -1
  636. package/dist/vue3/lib/input-group.js +41 -39
  637. package/dist/vue3/lib/input-group.js.map +1 -1
  638. package/dist/vue3/lib/input.cjs +578 -1
  639. package/dist/vue3/lib/input.cjs.map +1 -1
  640. package/dist/vue3/lib/input.js +185 -137
  641. package/dist/vue3/lib/input.js.map +1 -1
  642. package/dist/vue3/lib/item-layout.cjs +91 -1
  643. package/dist/vue3/lib/item-layout.cjs.map +1 -1
  644. package/dist/vue3/lib/item-layout.js +45 -39
  645. package/dist/vue3/lib/item-layout.js.map +1 -1
  646. package/dist/vue3/lib/ivr-node.cjs +263 -1
  647. package/dist/vue3/lib/ivr-node.cjs.map +1 -1
  648. package/dist/vue3/lib/ivr-node.js +130 -112
  649. package/dist/vue3/lib/ivr-node.js.map +1 -1
  650. package/dist/vue3/lib/keyboard-shortcut.cjs +119 -1
  651. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
  652. package/dist/vue3/lib/keyboard-shortcut.js +58 -48
  653. package/dist/vue3/lib/keyboard-shortcut.js.map +1 -1
  654. package/dist/vue3/lib/lazy-show.cjs +82 -1
  655. package/dist/vue3/lib/lazy-show.cjs.map +1 -1
  656. package/dist/vue3/lib/lazy-show.js +21 -19
  657. package/dist/vue3/lib/lazy-show.js.map +1 -1
  658. package/dist/vue3/lib/link.cjs +43 -1
  659. package/dist/vue3/lib/link.cjs.map +1 -1
  660. package/dist/vue3/lib/link.js +20 -19
  661. package/dist/vue3/lib/link.js.map +1 -1
  662. package/dist/vue3/lib/list-item-group.cjs +67 -1
  663. package/dist/vue3/lib/list-item-group.cjs.map +1 -1
  664. package/dist/vue3/lib/list-item-group.js +24 -22
  665. package/dist/vue3/lib/list-item-group.js.map +1 -1
  666. package/dist/vue3/lib/list-item.cjs +216 -1
  667. package/dist/vue3/lib/list-item.cjs.map +1 -1
  668. package/dist/vue3/lib/list-item.js +71 -60
  669. package/dist/vue3/lib/list-item.js.map +1 -1
  670. package/dist/vue3/lib/message-input.cjs +708 -1
  671. package/dist/vue3/lib/message-input.cjs.map +1 -1
  672. package/dist/vue3/lib/message-input.js +232 -206
  673. package/dist/vue3/lib/message-input.js.map +1 -1
  674. package/dist/vue3/lib/modal.cjs +444 -2
  675. package/dist/vue3/lib/modal.cjs.map +1 -1
  676. package/dist/vue3/lib/modal.js +153 -120
  677. package/dist/vue3/lib/modal.js.map +1 -1
  678. package/dist/vue3/lib/notice.cjs +197 -1
  679. package/dist/vue3/lib/notice.cjs.map +1 -1
  680. package/dist/vue3/lib/notice.js +66 -63
  681. package/dist/vue3/lib/notice.js.map +1 -1
  682. package/dist/vue3/lib/pagination.cjs +205 -1
  683. package/dist/vue3/lib/pagination.cjs.map +1 -1
  684. package/dist/vue3/lib/pagination.js +96 -81
  685. package/dist/vue3/lib/pagination.js.map +1 -1
  686. package/dist/vue3/lib/popover.cjs +1080 -1
  687. package/dist/vue3/lib/popover.cjs.map +1 -1
  688. package/dist/vue3/lib/popover.js +447 -267
  689. package/dist/vue3/lib/popover.js.map +1 -1
  690. package/dist/vue3/lib/presence.cjs +70 -1
  691. package/dist/vue3/lib/presence.cjs.map +1 -1
  692. package/dist/vue3/lib/presence.js +33 -27
  693. package/dist/vue3/lib/presence.js.map +1 -1
  694. package/dist/vue3/lib/radio-group.cjs +88 -1
  695. package/dist/vue3/lib/radio-group.cjs.map +1 -1
  696. package/dist/vue3/lib/radio-group.js +18 -18
  697. package/dist/vue3/lib/radio-group.js.map +1 -1
  698. package/dist/vue3/lib/radio.cjs +162 -1
  699. package/dist/vue3/lib/radio.cjs.map +1 -1
  700. package/dist/vue3/lib/radio.js +66 -57
  701. package/dist/vue3/lib/radio.js.map +1 -1
  702. package/dist/vue3/lib/rich-text-editor.cjs +1137 -1
  703. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -1
  704. package/dist/vue3/lib/rich-text-editor.js +567 -386
  705. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  706. package/dist/vue3/lib/root-layout.cjs +158 -1
  707. package/dist/vue3/lib/root-layout.cjs.map +1 -1
  708. package/dist/vue3/lib/root-layout.js +33 -31
  709. package/dist/vue3/lib/root-layout.js.map +1 -1
  710. package/dist/vue3/lib/scroller.cjs +1090 -1
  711. package/dist/vue3/lib/scroller.cjs.map +1 -1
  712. package/dist/vue3/lib/scroller.js +668 -345
  713. package/dist/vue3/lib/scroller.js.map +1 -1
  714. package/dist/vue3/lib/select-menu.cjs +312 -1
  715. package/dist/vue3/lib/select-menu.cjs.map +1 -1
  716. package/dist/vue3/lib/select-menu.js +124 -79
  717. package/dist/vue3/lib/select-menu.js.map +1 -1
  718. package/dist/vue3/lib/settings-menu-button.cjs +77 -1
  719. package/dist/vue3/lib/settings-menu-button.cjs.map +1 -1
  720. package/dist/vue3/lib/settings-menu-button.js +31 -30
  721. package/dist/vue3/lib/settings-menu-button.js.map +1 -1
  722. package/dist/vue3/lib/skeleton.cjs +635 -1
  723. package/dist/vue3/lib/skeleton.cjs.map +1 -1
  724. package/dist/vue3/lib/skeleton.js +189 -152
  725. package/dist/vue3/lib/skeleton.js.map +1 -1
  726. package/dist/vue3/lib/stack.cjs +123 -1
  727. package/dist/vue3/lib/stack.cjs.map +1 -1
  728. package/dist/vue3/lib/stack.js +61 -53
  729. package/dist/vue3/lib/stack.js.map +1 -1
  730. package/dist/vue3/lib/tabs.cjs +102 -1
  731. package/dist/vue3/lib/tabs.cjs.map +1 -1
  732. package/dist/vue3/lib/tabs.js +47 -41
  733. package/dist/vue3/lib/tabs.js.map +1 -1
  734. package/dist/vue3/lib/time-pill.cjs +41 -1
  735. package/dist/vue3/lib/time-pill.cjs.map +1 -1
  736. package/dist/vue3/lib/time-pill.js +18 -14
  737. package/dist/vue3/lib/time-pill.js.map +1 -1
  738. package/dist/vue3/lib/toast.cjs +281 -1
  739. package/dist/vue3/lib/toast.cjs.map +1 -1
  740. package/dist/vue3/lib/toast.js +96 -74
  741. package/dist/vue3/lib/toast.js.map +1 -1
  742. package/dist/vue3/lib/toggle.cjs +192 -1
  743. package/dist/vue3/lib/toggle.cjs.map +1 -1
  744. package/dist/vue3/lib/toggle.js +60 -49
  745. package/dist/vue3/lib/toggle.js.map +1 -1
  746. package/dist/vue3/lib/tooltip-directive.cjs +84 -1
  747. package/dist/vue3/lib/tooltip-directive.cjs.map +1 -1
  748. package/dist/vue3/lib/tooltip-directive.js +56 -42
  749. package/dist/vue3/lib/tooltip-directive.js.map +1 -1
  750. package/dist/vue3/lib/tooltip.cjs +460 -1
  751. package/dist/vue3/lib/tooltip.cjs.map +1 -1
  752. package/dist/vue3/lib/tooltip.js +162 -103
  753. package/dist/vue3/lib/tooltip.js.map +1 -1
  754. package/dist/vue3/lib/top-banner-info.cjs +71 -1
  755. package/dist/vue3/lib/top-banner-info.cjs.map +1 -1
  756. package/dist/vue3/lib/top-banner-info.js +27 -22
  757. package/dist/vue3/lib/top-banner-info.js.map +1 -1
  758. package/dist/vue3/lib/unread-pill.cjs +73 -1
  759. package/dist/vue3/lib/unread-pill.cjs.map +1 -1
  760. package/dist/vue3/lib/unread-pill.js +28 -25
  761. package/dist/vue3/lib/unread-pill.js.map +1 -1
  762. package/dist/vue3/lib/validation-messages.cjs +89 -1
  763. package/dist/vue3/lib/validation-messages.cjs.map +1 -1
  764. package/dist/vue3/lib/validation-messages.js +41 -36
  765. package/dist/vue3/lib/validation-messages.js.map +1 -1
  766. package/dist/vue3/style.css +1257 -1
  767. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +2 -2
  768. package/dist/vue3/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +2 -2
  769. package/package.json +35 -35
  770. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js +0 -2
  771. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js.map +0 -1
  772. package/dist/vue2/chunks/_plugin-vue2_normalizer-u6G_3nkj.js +0 -33
  773. package/dist/vue2/chunks/_plugin-vue2_normalizer-u6G_3nkj.js.map +0 -1
  774. package/dist/vue2/chunks/dropdown-zhMEz3bn.js +0 -2
  775. package/dist/vue2/chunks/dropdown_constants-EUcDxBrX.js +0 -9
  776. package/dist/vue2/chunks/dropdown_constants-EUcDxBrX.js.map +0 -1
  777. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js +0 -2
  778. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js.map +0 -1
  779. package/dist/vue2/chunks/icon_constants-2S_OSQ1t.js +0 -2
  780. package/dist/vue2/chunks/index-2jPosQBn.js +0 -3
  781. package/dist/vue2/chunks/index-YkSDT8-g.js +0 -244
  782. package/dist/vue2/chunks/index-YkSDT8-g.js.map +0 -1
  783. package/dist/vue2/chunks/index-nIyl_PL6.js +0 -372
  784. package/dist/vue2/chunks/index-sdfB7Aok.js +0 -2
  785. package/dist/vue2/chunks/index-sdfB7Aok.js.map +0 -1
  786. package/dist/vue2/chunks/input-o-fc1X4b.js +0 -2
  787. package/dist/vue2/chunks/input_group-j2gTtc1C.js +0 -2
  788. package/dist/vue2/chunks/keyboard_list_navigation-F0O8nht0.js +0 -197
  789. package/dist/vue2/chunks/keyboard_list_navigation-N74Bpdq7.js +0 -2
  790. package/dist/vue2/chunks/link_constants-Kn6kP4i1.js +0 -2
  791. package/dist/vue2/chunks/link_constants-vIUB92L4.js +0 -16
  792. package/dist/vue2/chunks/list_item_constants-LTUc74pD.js +0 -13
  793. package/dist/vue2/chunks/list_item_constants-Tsz5CO1m.js +0 -2
  794. package/dist/vue2/chunks/modal-VuMFkZFH.js +0 -82
  795. package/dist/vue2/chunks/modal-qEzlo0Sj.js +0 -2
  796. package/dist/vue2/chunks/notice_action-9NmtQRai.js +0 -182
  797. package/dist/vue2/chunks/notice_action-u3ZKIhit.js +0 -2
  798. package/dist/vue2/chunks/notice_constants-c--hBFQw.js +0 -6
  799. package/dist/vue2/chunks/notice_constants-mC6al2Dm.js +0 -2
  800. package/dist/vue2/chunks/popover_constants-hOEhklvr.js +0 -2
  801. package/dist/vue2/chunks/popover_constants-qjlEkroB.js +0 -114
  802. package/dist/vue2/chunks/sr_only_close_button-ErijKGYR.js +0 -3
  803. package/dist/vue2/chunks/sr_only_close_button-JGole5Xi.js +0 -86
  804. package/dist/vue2/chunks/stack_constants-m9Ickqw0.js +0 -2
  805. package/dist/vue2/chunks/stack_constants-u7tNqGtc.js +0 -13
  806. package/dist/vue2/chunks/tab-7hJQSLFx.js +0 -2
  807. package/dist/vue2/chunks/tab-Qm9LVkYj.js +0 -346
  808. package/dist/vue2/lib/constants.cjs +0 -2
  809. package/dist/vue2/lib/dates.cjs +0 -2
  810. package/dist/vue2/lib/dates.js +0 -57
  811. package/dist/vue2/lib/mixins.cjs +0 -2
  812. package/dist/vue2/lib/mixins.js +0 -17
  813. package/dist/vue2/lib/utils.cjs +0 -2
  814. package/dist/vue2/lib/utils.js +0 -175
  815. package/dist/vue2/lib/validators.cjs +0 -2
  816. package/dist/vue2/lib/validators.js +0 -12
  817. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js +0 -2
  818. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +0 -1
  819. package/dist/vue3/chunks/_plugin-vue_export-helper-hUChTQA_.js +0 -10
  820. package/dist/vue3/chunks/_plugin-vue_export-helper-hUChTQA_.js.map +0 -1
  821. package/dist/vue3/chunks/dropdown-UO3UJalk.js +0 -2
  822. package/dist/vue3/chunks/dropdown_constants-EUcDxBrX.js +0 -9
  823. package/dist/vue3/chunks/dropdown_constants-EUcDxBrX.js.map +0 -1
  824. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js +0 -2
  825. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js.map +0 -1
  826. package/dist/vue3/chunks/icon_constants-2S_OSQ1t.js +0 -2
  827. package/dist/vue3/chunks/index-6tYeqbgP.js +0 -3
  828. package/dist/vue3/chunks/index-IBtQ5jRJ.js +0 -2
  829. package/dist/vue3/chunks/index-IBtQ5jRJ.js.map +0 -1
  830. package/dist/vue3/chunks/index-b4iXYvId.js +0 -399
  831. package/dist/vue3/chunks/index-mRmwpCBG.js +0 -256
  832. package/dist/vue3/chunks/index-mRmwpCBG.js.map +0 -1
  833. package/dist/vue3/chunks/input-0Uksk4DP.js +0 -2
  834. package/dist/vue3/chunks/input_group-AS760Cp7.js +0 -2
  835. package/dist/vue3/chunks/keyboard_list_navigation-F0O8nht0.js +0 -197
  836. package/dist/vue3/chunks/keyboard_list_navigation-N74Bpdq7.js +0 -2
  837. package/dist/vue3/chunks/link_constants-Kn6kP4i1.js +0 -2
  838. package/dist/vue3/chunks/link_constants-vIUB92L4.js +0 -16
  839. package/dist/vue3/chunks/list_item_constants-LTUc74pD.js +0 -13
  840. package/dist/vue3/chunks/list_item_constants-Tsz5CO1m.js +0 -2
  841. package/dist/vue3/chunks/modal-VuMFkZFH.js +0 -82
  842. package/dist/vue3/chunks/modal-qEzlo0Sj.js +0 -2
  843. package/dist/vue3/chunks/notice_action-jO199emq.js +0 -2
  844. package/dist/vue3/chunks/notice_action-tJfD5Qw1.js +0 -209
  845. package/dist/vue3/chunks/notice_constants-c--hBFQw.js +0 -6
  846. package/dist/vue3/chunks/notice_constants-mC6al2Dm.js +0 -2
  847. package/dist/vue3/chunks/popover_constants-hOEhklvr.js +0 -2
  848. package/dist/vue3/chunks/popover_constants-qjlEkroB.js +0 -114
  849. package/dist/vue3/chunks/sr_only_close_button-iD7s1Pbj.js +0 -3
  850. package/dist/vue3/chunks/stack_constants-m9Ickqw0.js +0 -2
  851. package/dist/vue3/chunks/stack_constants-u7tNqGtc.js +0 -13
  852. package/dist/vue3/chunks/tab-GQZFMq83.js +0 -367
  853. package/dist/vue3/chunks/tab-at7WWglk.js +0 -2
  854. package/dist/vue3/lib/constants.cjs +0 -2
  855. package/dist/vue3/lib/dates.cjs +0 -2
  856. package/dist/vue3/lib/dates.js +0 -57
  857. package/dist/vue3/lib/mixins.cjs +0 -2
  858. package/dist/vue3/lib/mixins.js +0 -17
  859. package/dist/vue3/lib/utils.cjs +0 -2
  860. package/dist/vue3/lib/utils.js +0 -171
  861. package/dist/vue3/lib/validators.cjs +0 -2
  862. package/dist/vue3/lib/validators.js +0 -12
  863. /package/dist/vue2/{lib → common}/mixins.js.map +0 -0
  864. /package/dist/vue3/{lib → common}/mixins.js.map +0 -0
@@ -1,38 +1,43 @@
1
- import { getUniqueString as l, getRandomElement as o } from "./utils.js";
2
- import d from "@dialpad/dialtone-icons/icons.json";
3
- import { I as c } from "../chunks/icon_constants-OpYAAKwF.js";
4
- import { n as m } from "../chunks/_plugin-vue2_normalizer-u6G_3nkj.js";
5
- import { DtPresence as u } from "./presence.js";
6
- import { DtIcon as v } from "./icon.js";
7
- import "./constants.js";
1
+ import { getUniqueString, getRandomElement } from "../common/utils.js";
2
+ import iconNames from "@dialpad/dialtone-icons/icons.json";
3
+ import { ICON_SIZE_MODIFIERS } from "../chunks/icon_constants-Dy4MEUJL.js";
4
+ import { normalizeComponent } from "../chunks/_plugin-vue2_normalizer-sOSkiPF3.js";
5
+ import { DtPresence } from "./presence.js";
6
+ import { DtIcon } from "./icon.js";
7
+ import "../common/constants.js";
8
8
  import "vue";
9
9
  import "@dialpad/dialtone-icons/vue2";
10
- const s = {
10
+ const AVATAR_SIZE_MODIFIERS = {
11
11
  xs: "d-avatar--xs",
12
12
  sm: "d-avatar--sm",
13
13
  md: "d-avatar--md",
14
14
  lg: "d-avatar--lg",
15
15
  xl: "d-avatar--xl"
16
- }, f = {
16
+ };
17
+ const AVATAR_KIND_MODIFIERS = {
17
18
  default: "",
18
19
  icon: "d-avatar__icon",
19
20
  initials: "d-avatar__initials"
20
- }, p = {
21
+ };
22
+ const AVATAR_PRESENCE_SIZE_MODIFIERS = {
21
23
  md: "d-avatar__presence--md",
22
24
  lg: "d-avatar__presence--lg"
23
- }, i = {
25
+ };
26
+ const AVATAR_PRESENCE_STATES = {
24
27
  NONE: "",
25
28
  BUSY: "busy",
26
29
  AWAY: "away",
27
30
  OFFLINE: "offline",
28
31
  ACTIVE: "active"
29
- }, _ = {
32
+ };
33
+ const AVATAR_ICON_SIZES = {
30
34
  xs: "100",
31
35
  sm: "200",
32
36
  md: "300",
33
37
  lg: "500",
34
38
  xl: "600"
35
- }, g = [
39
+ };
40
+ const AVATAR_COLORS = [
36
41
  "100",
37
42
  "200",
38
43
  "300",
@@ -51,19 +56,22 @@ const s = {
51
56
  "1600",
52
57
  "1700",
53
58
  "1800"
54
- ], n = (a) => a > 1;
55
- function I() {
56
- return [void 0, ...d];
59
+ ];
60
+ const AVATAR_GROUP_VALIDATOR = (group) => group > 1;
61
+ function getIconNames() {
62
+ return [void 0, ...iconNames];
57
63
  }
58
- const h = (a) => {
59
- if (typeof a != "string" || !a.trim())
64
+ const extractInitialsFromName = (fullName) => {
65
+ if (typeof fullName !== "string" || !fullName.trim())
60
66
  return "";
61
- const e = a.trim().split(/\s+/g);
62
- return e.length === 1 ? e.join("").substring(0, 2) : e.filter((t, r) => r === 0 || r === e.length - 1).map((t) => t.slice(0, 1).toUpperCase()).join("");
63
- }, S = I(), y = {
67
+ const names = fullName.trim().split(/\s+/g);
68
+ return names.length === 1 ? names.join("").substring(0, 2) : names.filter((_, index) => index === 0 || index === names.length - 1).map((name) => name.slice(0, 1).toUpperCase()).join("");
69
+ };
70
+ const ICONS_LIST = getIconNames();
71
+ const _sfc_main = {
64
72
  name: "DtAvatar",
65
- components: { DtPresence: u, DtIcon: v },
66
- inheritAttrs: !1,
73
+ components: { DtPresence, DtIcon },
74
+ inheritAttrs: false,
67
75
  props: {
68
76
  /**
69
77
  * Id of the avatar content wrapper element
@@ -71,7 +79,7 @@ const h = (a) => {
71
79
  id: {
72
80
  type: String,
73
81
  default() {
74
- return l();
82
+ return getUniqueString();
75
83
  }
76
84
  },
77
85
  /**
@@ -97,7 +105,7 @@ const h = (a) => {
97
105
  size: {
98
106
  type: String,
99
107
  default: "md",
100
- validator: (a) => Object.keys(s).includes(a)
108
+ validator: (size) => Object.keys(AVATAR_SIZE_MODIFIERS).includes(size)
101
109
  },
102
110
  /**
103
111
  * Used to customize the avatar container
@@ -128,8 +136,10 @@ const h = (a) => {
128
136
  */
129
137
  presence: {
130
138
  type: String,
131
- default: i.NONE,
132
- validator: (a) => Object.values(i).includes(a)
139
+ default: AVATAR_PRESENCE_STATES.NONE,
140
+ validator: (state) => {
141
+ return Object.values(AVATAR_PRESENCE_STATES).includes(state);
142
+ }
133
143
  },
134
144
  /**
135
145
  * A set of props to be passed into the presence component.
@@ -146,7 +156,7 @@ const h = (a) => {
146
156
  group: {
147
157
  type: Number,
148
158
  default: void 0,
149
- validator: (a) => n(a)
159
+ validator: (group) => AVATAR_GROUP_VALIDATOR(group)
150
160
  },
151
161
  /**
152
162
  * The icon that overlays the avatar
@@ -191,7 +201,7 @@ const h = (a) => {
191
201
  iconName: {
192
202
  type: String,
193
203
  default: void 0,
194
- validator: (a) => S.includes(a)
204
+ validator: (name) => ICONS_LIST.includes(name)
195
205
  },
196
206
  /**
197
207
  * Icon size to be displayed on the avatar
@@ -200,7 +210,7 @@ const h = (a) => {
200
210
  iconSize: {
201
211
  type: String,
202
212
  default: "",
203
- validator: (a) => !a || Object.keys(c).includes(a)
213
+ validator: (size) => !size || Object.keys(ICON_SIZE_MODIFIERS).includes(size)
204
214
  },
205
215
  /**
206
216
  * Full name used to extract initials.
@@ -215,7 +225,7 @@ const h = (a) => {
215
225
  */
216
226
  clickable: {
217
227
  type: Boolean,
218
- default: !1
228
+ default: false
219
229
  },
220
230
  /**
221
231
  * Descriptive label for the icon.
@@ -237,13 +247,13 @@ const h = (a) => {
237
247
  ],
238
248
  data() {
239
249
  return {
240
- AVATAR_SIZE_MODIFIERS: s,
241
- AVATAR_KIND_MODIFIERS: f,
242
- AVATAR_PRESENCE_SIZE_MODIFIERS: p,
243
- AVATAR_ICON_SIZES: _,
250
+ AVATAR_SIZE_MODIFIERS,
251
+ AVATAR_KIND_MODIFIERS,
252
+ AVATAR_PRESENCE_SIZE_MODIFIERS,
253
+ AVATAR_ICON_SIZES,
244
254
  imageLoadedSuccessfully: null,
245
255
  formattedInitials: "",
246
- initializing: !1
256
+ initializing: false
247
257
  };
248
258
  },
249
259
  computed: {
@@ -253,7 +263,7 @@ const h = (a) => {
253
263
  avatarClasses() {
254
264
  return [
255
265
  "d-avatar",
256
- s[this.validatedSize],
266
+ AVATAR_SIZE_MODIFIERS[this.validatedSize],
257
267
  this.avatarClass,
258
268
  {
259
269
  "d-avatar--group": this.showGroup,
@@ -269,7 +279,7 @@ const h = (a) => {
269
279
  ];
270
280
  },
271
281
  showGroup() {
272
- return n(this.group);
282
+ return AVATAR_GROUP_VALIDATOR(this.group);
273
283
  },
274
284
  formattedGroup() {
275
285
  return this.group > 99 ? "99+" : this.group;
@@ -278,91 +288,113 @@ const h = (a) => {
278
288
  return this.group ? "xs" : this.size;
279
289
  },
280
290
  showImage() {
281
- return this.imageLoadedSuccessfully !== !1 && this.imageSrc;
291
+ return this.imageLoadedSuccessfully !== false && this.imageSrc;
282
292
  }
283
293
  },
284
294
  watch: {
285
295
  fullName: {
286
- immediate: !0,
296
+ immediate: true,
287
297
  handler() {
288
298
  this.formatInitials();
289
299
  }
290
300
  },
291
301
  size: {
292
- immediate: !0,
302
+ immediate: true,
293
303
  handler() {
294
304
  this.formatInitials();
295
305
  }
296
306
  },
297
307
  group: {
298
- immediate: !0,
308
+ immediate: true,
299
309
  handler() {
300
310
  this.formatInitials();
301
311
  }
302
312
  },
303
- imageSrc(a) {
304
- this.imageLoadedSuccessfully = null, a && (this.validateProps(), this.setImageListeners());
313
+ imageSrc(newSrc) {
314
+ this.imageLoadedSuccessfully = null;
315
+ if (!newSrc)
316
+ return;
317
+ this.validateProps();
318
+ this.setImageListeners();
305
319
  }
306
320
  },
307
321
  mounted() {
308
- this.validateProps(), this.setImageListeners();
322
+ this.validateProps();
323
+ this.setImageListeners();
309
324
  },
310
325
  methods: {
311
326
  async setImageListeners() {
312
327
  await this.$nextTick();
313
- const a = this.$refs.avatarImage;
314
- a && (a.addEventListener("load", () => this._loadedImageEventHandler(a), { once: !0 }), a.addEventListener("error", () => this._erroredImageEventHandler(a), { once: !0 }));
328
+ const el = this.$refs.avatarImage;
329
+ if (!el)
330
+ return;
331
+ el.addEventListener("load", () => this._loadedImageEventHandler(el), { once: true });
332
+ el.addEventListener("error", () => this._erroredImageEventHandler(el), { once: true });
315
333
  },
316
334
  formatInitials() {
317
- const a = h(this.fullName);
318
- this.validatedSize === "xs" ? this.formattedInitials = "" : this.validatedSize === "sm" ? this.formattedInitials = a[0] : this.formattedInitials = a;
335
+ const initials = extractInitialsFromName(this.fullName);
336
+ if (this.validatedSize === "xs") {
337
+ this.formattedInitials = "";
338
+ } else if (this.validatedSize === "sm") {
339
+ this.formattedInitials = initials[0];
340
+ } else {
341
+ this.formattedInitials = initials;
342
+ }
319
343
  },
320
344
  getColor() {
321
- return this.color ?? o(g, this.seed);
345
+ return this.color ?? getRandomElement(AVATAR_COLORS, this.seed);
322
346
  },
323
- _loadedImageEventHandler(a) {
324
- this.imageLoadedSuccessfully = !0, a.classList.remove("d-d-none");
347
+ _loadedImageEventHandler(el) {
348
+ this.imageLoadedSuccessfully = true;
349
+ el.classList.remove("d-d-none");
325
350
  },
326
- _erroredImageEventHandler(a) {
327
- this.imageLoadedSuccessfully = !1, a.classList.add("d-d-none");
351
+ _erroredImageEventHandler(el) {
352
+ this.imageLoadedSuccessfully = false;
353
+ el.classList.add("d-d-none");
328
354
  },
329
355
  validateProps() {
330
- this.imageSrc && this.imageAlt === void 0 && console.error('image-alt required if image-src is provided. Can be set to "" (empty string) if the image is described in text nearby');
356
+ if (this.imageSrc && this.imageAlt === void 0) {
357
+ console.error('image-alt required if image-src is provided. Can be set to "" (empty string) if the image is described in text nearby');
358
+ }
331
359
  },
332
- handleClick(a) {
333
- this.clickable && this.$emit("click", a);
360
+ handleClick(e) {
361
+ if (!this.clickable)
362
+ return;
363
+ this.$emit("click", e);
334
364
  }
335
365
  }
336
366
  };
337
- var A = function() {
338
- var e = this, t = e._self._c;
339
- return t(e.clickable ? "button" : "div", { tag: "component", class: e.avatarClasses, attrs: { id: e.id, "data-qa": "dt-avatar" }, on: { click: e.handleClick } }, [t("div", { ref: "canvas", class: [
340
- e.canvasClass,
367
+ var _sfc_render = function render() {
368
+ var _vm = this, _c = _vm._self._c;
369
+ return _c(_vm.clickable ? "button" : "div", { tag: "component", class: _vm.avatarClasses, attrs: { "id": _vm.id, "data-qa": "dt-avatar" }, on: { "click": _vm.handleClick } }, [_c("div", { ref: "canvas", class: [
370
+ _vm.canvasClass,
341
371
  "d-avatar__canvas",
342
- { "d-avatar--image-loaded": e.imageLoadedSuccessfully }
343
- ] }, [e.showImage ? t("img", { ref: "avatarImage", staticClass: "d-avatar__image", attrs: { "data-qa": "dt-avatar-image", src: e.imageSrc, alt: e.imageAlt } }) : e.iconName ? t("dt-icon", { class: [e.iconClass, e.AVATAR_KIND_MODIFIERS.icon], attrs: { name: e.iconName, "aria-label": e.iconAriaLabel, size: e.iconSize || e.AVATAR_ICON_SIZES[e.size], "data-qa": "dt-avatar-icon" } }) : t("span", { class: [e.AVATAR_KIND_MODIFIERS.initials] }, [e._v(" " + e._s(e.formattedInitials) + " ")])], 1), e.overlayIcon || e.overlayText ? t("div", { class: e.overlayClasses }, [e.overlayIcon ? t("dt-icon", { staticClass: "d-avatar__overlay-icon", attrs: { name: e.overlayIcon } }) : e.overlayText ? t("p", { staticClass: "d-avatar__overlay-text" }, [e._v(" " + e._s(e.overlayText) + " ")]) : e._e()], 1) : e._e(), e.showGroup ? t("span", { staticClass: "d-avatar__count", attrs: { "data-qa": "dt-avatar-count" } }, [e._v(e._s(e.formattedGroup))]) : e._e(), e.presence && !e.showGroup ? t("dt-presence", e._b({ class: [
372
+ { "d-avatar--image-loaded": _vm.imageLoadedSuccessfully }
373
+ ] }, [_vm.showImage ? _c("img", { ref: "avatarImage", staticClass: "d-avatar__image", attrs: { "data-qa": "dt-avatar-image", "src": _vm.imageSrc, "alt": _vm.imageAlt } }) : _vm.iconName ? _c("dt-icon", { class: [_vm.iconClass, _vm.AVATAR_KIND_MODIFIERS.icon], attrs: { "name": _vm.iconName, "aria-label": _vm.iconAriaLabel, "size": _vm.iconSize || _vm.AVATAR_ICON_SIZES[_vm.size], "data-qa": "dt-avatar-icon" } }) : _c("span", { class: [_vm.AVATAR_KIND_MODIFIERS.initials] }, [_vm._v(" " + _vm._s(_vm.formattedInitials) + " ")])], 1), _vm.overlayIcon || _vm.overlayText ? _c("div", { class: _vm.overlayClasses }, [_vm.overlayIcon ? _c("dt-icon", { staticClass: "d-avatar__overlay-icon", attrs: { "name": _vm.overlayIcon } }) : _vm.overlayText ? _c("p", { staticClass: "d-avatar__overlay-text" }, [_vm._v(" " + _vm._s(_vm.overlayText) + " ")]) : _vm._e()], 1) : _vm._e(), _vm.showGroup ? _c("span", { staticClass: "d-avatar__count", attrs: { "data-qa": "dt-avatar-count" } }, [_vm._v(_vm._s(_vm.formattedGroup))]) : _vm._e(), _vm.presence && !_vm.showGroup ? _c("dt-presence", _vm._b({ class: [
344
374
  "d-avatar__presence",
345
- e.AVATAR_PRESENCE_SIZE_MODIFIERS[e.size]
346
- ], attrs: { presence: e.presence, "data-qa": "dt-presence" } }, "dt-presence", e.presenceProps, !1)) : e._e()], 1);
347
- }, E = [], C = /* @__PURE__ */ m(
348
- y,
349
- A,
350
- E,
351
- !1,
375
+ _vm.AVATAR_PRESENCE_SIZE_MODIFIERS[_vm.size]
376
+ ], attrs: { "presence": _vm.presence, "data-qa": "dt-presence" } }, "dt-presence", _vm.presenceProps, false)) : _vm._e()], 1);
377
+ };
378
+ var _sfc_staticRenderFns = [];
379
+ var __component__ = /* @__PURE__ */ normalizeComponent(
380
+ _sfc_main,
381
+ _sfc_render,
382
+ _sfc_staticRenderFns,
383
+ false,
352
384
  null,
353
385
  null,
354
386
  null,
355
387
  null
356
388
  );
357
- const z = C.exports;
389
+ const DtAvatar = __component__.exports;
358
390
  export {
359
- g as AVATAR_COLORS,
360
- n as AVATAR_GROUP_VALIDATOR,
361
- _ as AVATAR_ICON_SIZES,
362
- f as AVATAR_KIND_MODIFIERS,
363
- p as AVATAR_PRESENCE_SIZE_MODIFIERS,
364
- i as AVATAR_PRESENCE_STATES,
365
- s as AVATAR_SIZE_MODIFIERS,
366
- z as DtAvatar
391
+ AVATAR_COLORS,
392
+ AVATAR_GROUP_VALIDATOR,
393
+ AVATAR_ICON_SIZES,
394
+ AVATAR_KIND_MODIFIERS,
395
+ AVATAR_PRESENCE_SIZE_MODIFIERS,
396
+ AVATAR_PRESENCE_STATES,
397
+ AVATAR_SIZE_MODIFIERS,
398
+ DtAvatar
367
399
  };
368
400
  //# sourceMappingURL=avatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sources":["../../components/avatar/avatar_constants.js","../../common/storybook_utils.js","../../components/avatar/utils.js","../../components/avatar/avatar.vue"],"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 '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\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_GROUP_VALIDATOR,\n};\n","import iconNames from '@dialpad/dialtone-icons/icons.json';\n\n/**\n * Will use a Vue SFC to render the template rather than a template string.\n * This is useful for more complex components that are hard to work with and\n * get messy when rendered via a template string. Will pass args and argTypes\n * into the component, so it is able to be live edited with storybook controls addon.\n * @param component this will get the component name\n * @param defaultTemplate we will mount in this component\n * @param argsData storybook control args\n * @returns {component} the template component with props and args added.\n */\n\nexport function createRenderConfig (component, defaultTemplate, argsData) {\n return {\n components: { [component.name]: defaultTemplate },\n props: [...Object.keys(component.props ?? {}), ...Object.keys(argsData)],\n setup (props) {\n return { props };\n },\n template: `<${component.name} v-bind=\"props\" />`,\n };\n}\n\n/**\n * Gets the full list of icon component names from the dialtone package\n * @returns {string[]} icon component names\n */\nexport function getIconNames () {\n return [undefined, ...iconNames];\n}\n\nexport const generateTemplate = (component,\n { props = [], excludeProps = [], customProps = [], childTemplate } = {}) => {\n if (!component) {\n console.warn('Generate template: Please provide a component');\n return '';\n }\n\n const { name, props: componentProps } = component;\n const finalProps = props.length ? props : Object.keys(componentProps);\n const normalizedName = name.split(/(?=[A-Z])/).join('-').toLowerCase();\n\n const startFragment = `<${normalizedName}`;\n\n const propFragments = finalProps\n .filter(prop => !excludeProps.includes(prop))\n .map(prop => `:${prop}=\"${prop}\"`);\n\n const endFragment = childTemplate ? `>${childTemplate}</${normalizedName}>` : ' />';\n\n return [startFragment, ...propFragments, ...customProps, endFragment].join(' ');\n};\n\nexport default {\n generateTemplate,\n getIconNames,\n createRenderConfig,\n};\n","export const extractInitialsFromName = (fullName) => {\n if (typeof fullName !== 'string' || !fullName.trim()) return '';\n\n const names = fullName.trim().split(/\\s+/g);\n\n return names.length === 1\n ? names.join('').substring(0, 2)\n : names.filter((_, index) => (index === 0 || index === names.length - 1))\n .map(name => name.slice(0, 1).toUpperCase())\n .join('');\n};\n","<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n data-qa=\"dt-avatar\"\n @click=\"handleClick\"\n >\n <div\n ref=\"canvas\"\n :class=\"[\n canvasClass,\n 'd-avatar__canvas',\n { 'd-avatar--image-loaded': imageLoadedSuccessfully },\n ]\"\n >\n <img\n v-if=\"showImage\"\n ref=\"avatarImage\"\n class=\"d-avatar__image\"\n data-qa=\"dt-avatar-image\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n <dt-icon\n v-else-if=\"iconName\"\n :name=\"iconName\"\n :aria-label=\"iconAriaLabel\"\n :size=\"iconSize || AVATAR_ICON_SIZES[size]\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n data-qa=\"dt-avatar-icon\"\n />\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n <div\n v-if=\"overlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <dt-icon\n v-if=\"overlayIcon\"\n class=\"d-avatar__overlay-icon\"\n :name=\"overlayIcon\"\n />\n <p\n v-else-if=\"overlayText\"\n class=\"d-avatar__overlay-text\"\n >\n {{ overlayText }}\n </p>\n </div>\n <span\n v-if=\"showGroup\"\n class=\"d-avatar__count\"\n data-qa=\"dt-avatar-count\"\n >{{ formattedGroup }}</span>\n <dt-presence\n v-if=\"presence && !showGroup\"\n :presence=\"presence\"\n :class=\"[\n 'd-avatar__presence',\n AVATAR_PRESENCE_SIZE_MODIFIERS[size],\n ]\"\n v-bind=\"presenceProps\"\n data-qa=\"dt-presence\"\n />\n </component>\n</template>\n\n<script>\nimport { getUniqueString, getRandomElement } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport { DtIcon } from '@/components/icon';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_COLORS,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_ICON_SIZES,\n} from './avatar_constants';\nimport { getIconNames } from '@/common/storybook_utils.js';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\nimport { extractInitialsFromName } from './utils';\n\nconst ICONS_LIST = getIconNames();\n\n/**\n * An avatar is a visual representation of a user or object.\n * @see https://dialtone.dialpad.com/components/avatar.html\n */\nexport default {\n name: 'DtAvatar',\n components: { DtPresence, DtIcon },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Id of the avatar content wrapper element\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Pass in a seed to get the random color generation based on that string. For example if you pass in a\n * user ID as the string it will return the same randomly generated colors every time for that user.\n */\n seed: {\n type: String,\n default: undefined,\n },\n\n /**\n * Set the avatar background to a specific color. If undefined will randomize the color which can be deterministic\n * if the seed prop is set.\n */\n color: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (size) => Object.keys(AVATAR_SIZE_MODIFIERS).includes(size),\n },\n\n /**\n * Used to customize the avatar container\n */\n avatarClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Set classes on the avatar canvas. Wrapper around the core avatar image.\n */\n canvasClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through classes. Used to customize the avatar icon\n */\n iconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: AVATAR_PRESENCE_STATES.NONE,\n validator: (state) => {\n return Object.values(AVATAR_PRESENCE_STATES).includes(state);\n },\n },\n\n /**\n * A set of props to be passed into the presence component.\n */\n presenceProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Determines whether to show a group avatar.\n * Limit to 2 digits max, more than 99 will be rendered as “99+”.\n * if the number is 1 or less it would just show the regular avatar as if group had not been set.\n */\n group: {\n type: Number,\n default: undefined,\n validator: (group) => AVATAR_GROUP_VALIDATOR(group),\n },\n\n /**\n * The icon that overlays the avatar\n */\n overlayIcon: {\n type: String,\n default: '',\n },\n\n /**\n * The text that overlays the avatar\n */\n overlayText: {\n type: String,\n default: '',\n },\n\n /**\n * Used to customize the avatar overlay\n */\n overlayClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Source of the image\n */\n imageSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Alt attribute of the image, required if imageSrc is provided.\n * Can be set to '' (empty string) if the image is described\n * in text nearby\n */\n imageAlt: {\n type: String,\n default: undefined,\n },\n\n /**\n * Icon name to be displayed on the avatar\n */\n iconName: {\n type: String,\n default: undefined,\n validator: (name) => ICONS_LIST.includes(name),\n },\n\n /**\n * Icon size to be displayed on the avatar\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n iconSize: {\n type: String,\n default: '',\n validator: (size) => !size || Object.keys(ICON_SIZE_MODIFIERS).includes(size),\n },\n\n /**\n * Full name used to extract initials.\n */\n fullName: {\n type: String,\n default: '',\n },\n\n /**\n * Makes the avatar focusable and clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the icon.\n * To avoid a11y issues, set this prop if clickable and iconName are set.\n */\n iconAriaLabel: {\n type: String,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Avatar click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_ICON_SIZES,\n imageLoadedSuccessfully: null,\n formattedInitials: '',\n initializing: false,\n };\n },\n\n computed: {\n isNotIconType () {\n return !this.iconName;\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n [`d-avatar--color-${this.getColor()}`]: this.isNotIconType,\n 'd-avatar--clickable': this.clickable,\n },\n ];\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n ];\n },\n\n showGroup () {\n return AVATAR_GROUP_VALIDATOR(this.group);\n },\n\n formattedGroup () {\n return this.group > 99 ? '99+' : this.group;\n },\n\n validatedSize () {\n // TODO: Group only supports xs size for now. Remove this when we support other sizes.\n return this.group ? 'xs' : this.size;\n },\n\n showImage () {\n return this.imageLoadedSuccessfully !== false && this.imageSrc;\n },\n },\n\n watch: {\n fullName: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n size: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n group: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n imageSrc (newSrc) {\n this.imageLoadedSuccessfully = null;\n if (!newSrc) return;\n\n this.validateProps();\n this.setImageListeners();\n },\n },\n\n mounted () {\n this.validateProps();\n this.setImageListeners();\n },\n\n methods: {\n async setImageListeners () {\n await this.$nextTick();\n const el = this.$refs.avatarImage;\n if (!el) return;\n\n el.addEventListener('load', () => this._loadedImageEventHandler(el), { once: true });\n el.addEventListener('error', () => this._erroredImageEventHandler(el), { once: true });\n },\n\n formatInitials () {\n const initials = extractInitialsFromName(this.fullName);\n\n if (this.validatedSize === 'xs') {\n this.formattedInitials = '';\n } else if (this.validatedSize === 'sm') {\n this.formattedInitials = initials[0];\n } else {\n this.formattedInitials = initials;\n }\n },\n\n getColor () {\n return this.color ?? getRandomElement(AVATAR_COLORS, this.seed);\n },\n\n _loadedImageEventHandler (el) {\n this.imageLoadedSuccessfully = true;\n el.classList.remove('d-d-none');\n },\n\n _erroredImageEventHandler (el) {\n this.imageLoadedSuccessfully = false;\n el.classList.add('d-d-none');\n },\n\n validateProps () {\n if (this.imageSrc && this.imageAlt === undefined) {\n console.error('image-alt required if image-src is provided. Can be set to \"\" (empty string) if the image is described in text nearby');\n }\n },\n\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n//TODO: Move these classes to dialtone and document.\n.d-avatar--image-loaded {\n background-color: transparent;\n background-image: unset;\n}\n\n.d-avatar__count {\n z-index: var(--zi-base);\n}\n\n.d-avatar__presence {\n z-index: var(--zi-base);\n}\n\n.d-avatar__overlay {\n background-color: var(--dt-color-surface-contrast-opaque);\n opacity: var(--dt-opacity-900);\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--dt-size-radius-circle);\n z-index: var(--zi-base);\n}\n\n.d-avatar__overlay-icon {\n color: var(--dt-color-foreground-primary-inverted);\n width: 100%;\n}\n\n.d-avatar__overlay-text {\n color: var(--dt-color-foreground-primary-inverted);\n font-weight: var(--dt-font-weight-bold);\n font-size: var(--dt-font-size-200);\n width: 100%;\n text-align: center;\n}\n\n.d-avatar--clickable {\n --avatar-color-border: transparent;\n\n cursor: pointer;\n padding: 0;\n background-color: transparent;\n\n border-radius: var(--dt-size-radius-circle);\n border: var(--dt-size-border-100) solid var(--avatar-color-border);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover {\n --avatar-color-border: var(--dt-color-border-default);\n }\n\n &:active {\n --avatar-color-border: var(--dt-color-border-moderate);\n\n transform: scale(0.98);\n }\n}\n</style>\n"],"names":["AVATAR_SIZE_MODIFIERS","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","AVATAR_ICON_SIZES","AVATAR_COLORS","AVATAR_GROUP_VALIDATOR","group","getIconNames","iconNames","extractInitialsFromName","fullName","names","_","index","name","ICONS_LIST","_sfc_main","DtPresence","DtIcon","getUniqueString","size","state","ICON_SIZE_MODIFIERS","newSrc","el","initials","getRandomElement","e"],"mappings":"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"}
1
+ {"version":3,"file":"avatar.js","sources":["../../components/avatar/avatar_constants.js","../../common/storybook_utils.js","../../components/avatar/utils.js","../../components/avatar/avatar.vue"],"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 '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\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_GROUP_VALIDATOR,\n};\n","import iconNames from '@dialpad/dialtone-icons/icons.json';\n\n/**\n * Will use a Vue SFC to render the template rather than a template string.\n * This is useful for more complex components that are hard to work with and\n * get messy when rendered via a template string. Will pass args and argTypes\n * into the component, so it is able to be live edited with storybook controls addon.\n * @param component this will get the component name\n * @param defaultTemplate we will mount in this component\n * @param argsData storybook control args\n * @returns {component} the template component with props and args added.\n */\n\nexport function createRenderConfig (component, defaultTemplate, argsData) {\n return {\n components: { [component.name]: defaultTemplate },\n props: [...Object.keys(component.props ?? {}), ...Object.keys(argsData)],\n setup (props) {\n return { props };\n },\n template: `<${component.name} v-bind=\"props\" />`,\n };\n}\n\n/**\n * Gets the full list of icon component names from the dialtone package\n * @returns {string[]} icon component names\n */\nexport function getIconNames () {\n return [undefined, ...iconNames];\n}\n\nexport const generateTemplate = (component,\n { props = [], excludeProps = [], customProps = [], childTemplate } = {}) => {\n if (!component) {\n console.warn('Generate template: Please provide a component');\n return '';\n }\n\n const { name, props: componentProps } = component;\n const finalProps = props.length ? props : Object.keys(componentProps);\n const normalizedName = name.split(/(?=[A-Z])/).join('-').toLowerCase();\n\n const startFragment = `<${normalizedName}`;\n\n const propFragments = finalProps\n .filter(prop => !excludeProps.includes(prop))\n .map(prop => `:${prop}=\"${prop}\"`);\n\n const endFragment = childTemplate ? `>${childTemplate}</${normalizedName}>` : ' />';\n\n return [startFragment, ...propFragments, ...customProps, endFragment].join(' ');\n};\n\nexport default {\n generateTemplate,\n getIconNames,\n createRenderConfig,\n};\n","export const extractInitialsFromName = (fullName) => {\n if (typeof fullName !== 'string' || !fullName.trim()) return '';\n\n const names = fullName.trim().split(/\\s+/g);\n\n return names.length === 1\n ? names.join('').substring(0, 2)\n : names.filter((_, index) => (index === 0 || index === names.length - 1))\n .map(name => name.slice(0, 1).toUpperCase())\n .join('');\n};\n","<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n data-qa=\"dt-avatar\"\n @click=\"handleClick\"\n >\n <div\n ref=\"canvas\"\n :class=\"[\n canvasClass,\n 'd-avatar__canvas',\n { 'd-avatar--image-loaded': imageLoadedSuccessfully },\n ]\"\n >\n <img\n v-if=\"showImage\"\n ref=\"avatarImage\"\n class=\"d-avatar__image\"\n data-qa=\"dt-avatar-image\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n <dt-icon\n v-else-if=\"iconName\"\n :name=\"iconName\"\n :aria-label=\"iconAriaLabel\"\n :size=\"iconSize || AVATAR_ICON_SIZES[size]\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n data-qa=\"dt-avatar-icon\"\n />\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n <div\n v-if=\"overlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <dt-icon\n v-if=\"overlayIcon\"\n class=\"d-avatar__overlay-icon\"\n :name=\"overlayIcon\"\n />\n <p\n v-else-if=\"overlayText\"\n class=\"d-avatar__overlay-text\"\n >\n {{ overlayText }}\n </p>\n </div>\n <span\n v-if=\"showGroup\"\n class=\"d-avatar__count\"\n data-qa=\"dt-avatar-count\"\n >{{ formattedGroup }}</span>\n <dt-presence\n v-if=\"presence && !showGroup\"\n :presence=\"presence\"\n :class=\"[\n 'd-avatar__presence',\n AVATAR_PRESENCE_SIZE_MODIFIERS[size],\n ]\"\n v-bind=\"presenceProps\"\n data-qa=\"dt-presence\"\n />\n </component>\n</template>\n\n<script>\nimport { getUniqueString, getRandomElement } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport { DtIcon } from '@/components/icon';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_COLORS,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_ICON_SIZES,\n} from './avatar_constants';\nimport { getIconNames } from '@/common/storybook_utils.js';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\nimport { extractInitialsFromName } from './utils';\n\nconst ICONS_LIST = getIconNames();\n\n/**\n * An avatar is a visual representation of a user or object.\n * @see https://dialtone.dialpad.com/components/avatar.html\n */\nexport default {\n name: 'DtAvatar',\n components: { DtPresence, DtIcon },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Id of the avatar content wrapper element\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Pass in a seed to get the random color generation based on that string. For example if you pass in a\n * user ID as the string it will return the same randomly generated colors every time for that user.\n */\n seed: {\n type: String,\n default: undefined,\n },\n\n /**\n * Set the avatar background to a specific color. If undefined will randomize the color which can be deterministic\n * if the seed prop is set.\n */\n color: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (size) => Object.keys(AVATAR_SIZE_MODIFIERS).includes(size),\n },\n\n /**\n * Used to customize the avatar container\n */\n avatarClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Set classes on the avatar canvas. Wrapper around the core avatar image.\n */\n canvasClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through classes. Used to customize the avatar icon\n */\n iconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: AVATAR_PRESENCE_STATES.NONE,\n validator: (state) => {\n return Object.values(AVATAR_PRESENCE_STATES).includes(state);\n },\n },\n\n /**\n * A set of props to be passed into the presence component.\n */\n presenceProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Determines whether to show a group avatar.\n * Limit to 2 digits max, more than 99 will be rendered as “99+”.\n * if the number is 1 or less it would just show the regular avatar as if group had not been set.\n */\n group: {\n type: Number,\n default: undefined,\n validator: (group) => AVATAR_GROUP_VALIDATOR(group),\n },\n\n /**\n * The icon that overlays the avatar\n */\n overlayIcon: {\n type: String,\n default: '',\n },\n\n /**\n * The text that overlays the avatar\n */\n overlayText: {\n type: String,\n default: '',\n },\n\n /**\n * Used to customize the avatar overlay\n */\n overlayClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Source of the image\n */\n imageSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Alt attribute of the image, required if imageSrc is provided.\n * Can be set to '' (empty string) if the image is described\n * in text nearby\n */\n imageAlt: {\n type: String,\n default: undefined,\n },\n\n /**\n * Icon name to be displayed on the avatar\n */\n iconName: {\n type: String,\n default: undefined,\n validator: (name) => ICONS_LIST.includes(name),\n },\n\n /**\n * Icon size to be displayed on the avatar\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n iconSize: {\n type: String,\n default: '',\n validator: (size) => !size || Object.keys(ICON_SIZE_MODIFIERS).includes(size),\n },\n\n /**\n * Full name used to extract initials.\n */\n fullName: {\n type: String,\n default: '',\n },\n\n /**\n * Makes the avatar focusable and clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the icon.\n * To avoid a11y issues, set this prop if clickable and iconName are set.\n */\n iconAriaLabel: {\n type: String,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Avatar click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_ICON_SIZES,\n imageLoadedSuccessfully: null,\n formattedInitials: '',\n initializing: false,\n };\n },\n\n computed: {\n isNotIconType () {\n return !this.iconName;\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n [`d-avatar--color-${this.getColor()}`]: this.isNotIconType,\n 'd-avatar--clickable': this.clickable,\n },\n ];\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n ];\n },\n\n showGroup () {\n return AVATAR_GROUP_VALIDATOR(this.group);\n },\n\n formattedGroup () {\n return this.group > 99 ? '99+' : this.group;\n },\n\n validatedSize () {\n // TODO: Group only supports xs size for now. Remove this when we support other sizes.\n return this.group ? 'xs' : this.size;\n },\n\n showImage () {\n return this.imageLoadedSuccessfully !== false && this.imageSrc;\n },\n },\n\n watch: {\n fullName: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n size: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n group: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n imageSrc (newSrc) {\n this.imageLoadedSuccessfully = null;\n if (!newSrc) return;\n\n this.validateProps();\n this.setImageListeners();\n },\n },\n\n mounted () {\n this.validateProps();\n this.setImageListeners();\n },\n\n methods: {\n async setImageListeners () {\n await this.$nextTick();\n const el = this.$refs.avatarImage;\n if (!el) return;\n\n el.addEventListener('load', () => this._loadedImageEventHandler(el), { once: true });\n el.addEventListener('error', () => this._erroredImageEventHandler(el), { once: true });\n },\n\n formatInitials () {\n const initials = extractInitialsFromName(this.fullName);\n\n if (this.validatedSize === 'xs') {\n this.formattedInitials = '';\n } else if (this.validatedSize === 'sm') {\n this.formattedInitials = initials[0];\n } else {\n this.formattedInitials = initials;\n }\n },\n\n getColor () {\n return this.color ?? getRandomElement(AVATAR_COLORS, this.seed);\n },\n\n _loadedImageEventHandler (el) {\n this.imageLoadedSuccessfully = true;\n el.classList.remove('d-d-none');\n },\n\n _erroredImageEventHandler (el) {\n this.imageLoadedSuccessfully = false;\n el.classList.add('d-d-none');\n },\n\n validateProps () {\n if (this.imageSrc && this.imageAlt === undefined) {\n console.error('image-alt required if image-src is provided. Can be set to \"\" (empty string) if the image is described in text nearby');\n }\n },\n\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n//TODO: Move these classes to dialtone and document.\n.d-avatar--image-loaded {\n background-color: transparent;\n background-image: unset;\n}\n\n.d-avatar__count {\n z-index: var(--zi-base);\n}\n\n.d-avatar__presence {\n z-index: var(--zi-base);\n}\n\n.d-avatar__overlay {\n background-color: var(--dt-color-surface-contrast-opaque);\n opacity: var(--dt-opacity-900);\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--dt-size-radius-circle);\n z-index: var(--zi-base);\n}\n\n.d-avatar__overlay-icon {\n color: var(--dt-color-foreground-primary-inverted);\n width: 100%;\n}\n\n.d-avatar__overlay-text {\n color: var(--dt-color-foreground-primary-inverted);\n font-weight: var(--dt-font-weight-bold);\n font-size: var(--dt-font-size-200);\n width: 100%;\n text-align: center;\n}\n\n.d-avatar--clickable {\n --avatar-color-border: transparent;\n\n cursor: pointer;\n padding: 0;\n background-color: transparent;\n\n border-radius: var(--dt-size-radius-circle);\n border: var(--dt-size-border-100) solid var(--avatar-color-border);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover {\n --avatar-color-border: var(--dt-color-border-default);\n }\n\n &:active {\n --avatar-color-border: var(--dt-color-border-moderate);\n\n transform: scale(0.98);\n }\n}\n</style>\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,183 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/_plugin-vue2_normalizer-ZK80B3OL.js"),i=require("./icon.cjs");require("@dialpad/dialtone-icons/vue2");require("../chunks/icon_constants-2S_OSQ1t.js");require("@dialpad/dialtone-icons/icons.json");const d={default:"",info:"d-badge--info",success:"d-badge--success",warning:"d-badge--warning",critical:"d-badge--critical",bulletin:"d-badge--bulletin",ai:"d-badge--ai"},r={label:"",count:"d-badge--count"},n={"black-400":"d-badge--decorate-black-400","black-500":"d-badge--decorate-black-500","black-900":"d-badge--decorate-black-900","red-200":"d-badge--decorate-red-200","red-300":"d-badge--decorate-red-300","red-400":"d-badge--decorate-red-400","purple-200":"d-badge--decorate-purple-200","purple-300":"d-badge--decorate-purple-300","purple-400":"d-badge--decorate-purple-400","purple-500":"d-badge--decorate-purple-500","blue-200":"d-badge--decorate-blue-200","blue-300":"d-badge--decorate-blue-300","blue-400":"d-badge--decorate-blue-400","green-300":"d-badge--decorate-green-300","green-400":"d-badge--decorate-green-400","green-500":"d-badge--decorate-green-500","gold-300":"d-badge--decorate-gold-300","gold-400":"d-badge--decorate-gold-400","gold-500":"d-badge--decorate-gold-500","magenta-200":"d-badge--decorate-magenta-200","magenta-300":"d-badge--decorate-magenta-300","magenta-400":"d-badge--decorate-magenta-400"},c={name:"DtBadge",components:{DtIcon:i.DtIcon},props:{iconLeft:{type:String,default:""},iconRight:{type:String,default:""},text:{type:String,default:""},kind:{type:String,default:"label",validator:t=>Object.keys(r).includes(t)},type:{type:String,default:"default",validator:t=>Object.keys(d).includes(t)},decoration:{type:String,default:void 0,validator:t=>Object.keys(n).includes(t)},labelClass:{type:[String,Array,Object],default:""}},data(){return{BADGE_TYPE_MODIFIERS:d,BADGE_KIND_MODIFIERS:r,BADGE_DECORATION_MODIFIERS:n}},computed:{hasIcons(){return this.iconLeft!==""||this.iconRight!==""}},watch:{$props:{immediate:!0,deep:!0,handler(){this.validateProps()}}},methods:{validateProps(){this.validateTypePropCombination(),this.validateDecorationPropCombination()},validateTypePropCombination(){this.type==="ai"&&this.kind==="count"&&console.error("DtBadge error: type: 'ai' with kind: 'count' is an invalid combination.")},validateDecorationPropCombination(){this.decoration&&((this.kind!=="label"||this.type!=="default")&&console.error("DtBadge error: decoration prop can only be used with kind: 'label' and type: 'default'."),this.hasIcons&&console.error("DtBadge error: decoration prop cannot be used with iconLeft or iconRight."))}}};var l=function(){var e=this,a=e._self._c;return a("span",{class:["d-badge",e.BADGE_TYPE_MODIFIERS[e.type],e.BADGE_KIND_MODIFIERS[e.kind],e.BADGE_DECORATION_MODIFIERS[e.decoration]],attrs:{"data-qa":"dt-badge"}},[e.decoration?a("span",{staticClass:"d-badge__decorative"}):e._e(),e.iconLeft||e.type==="ai"?a("span",{staticClass:"d-badge__icon-left"},[a("dt-icon",{attrs:{name:e.iconLeft||"dialpad-ai",size:"200"}})],1):e._e(),a("span",{class:["d-badge__label",e.labelClass]},[e._t("default",function(){return[e._v(" "+e._s(e.text)+" ")]})],2),e.iconRight?a("span",{staticClass:"d-badge__icon-right"},[a("dt-icon",{attrs:{name:e.iconRight,size:"200"}})],1):e._e()])},s=[],g=o.n(c,l,s,!1,null,null,null,null);const b=g.exports;exports.BADGE_DECORATION_MODIFIERS=n;exports.BADGE_KIND_MODIFIERS=r;exports.BADGE_TYPE_MODIFIERS=d;exports.DtBadge=b;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const _pluginVue2_normalizer = require("../chunks/_plugin-vue2_normalizer-1aBeR4AK.js");
4
+ const lib_icon = require("./icon.cjs");
5
+ require("@dialpad/dialtone-icons/vue2");
6
+ require("../chunks/icon_constants-QYpmdE0R.js");
7
+ require("@dialpad/dialtone-icons/icons.json");
8
+ const BADGE_TYPE_MODIFIERS = {
9
+ default: "",
10
+ info: "d-badge--info",
11
+ success: "d-badge--success",
12
+ warning: "d-badge--warning",
13
+ critical: "d-badge--critical",
14
+ bulletin: "d-badge--bulletin",
15
+ ai: "d-badge--ai"
16
+ };
17
+ const BADGE_KIND_MODIFIERS = {
18
+ label: "",
19
+ count: "d-badge--count"
20
+ };
21
+ const BADGE_DECORATION_MODIFIERS = {
22
+ "black-400": "d-badge--decorate-black-400",
23
+ "black-500": "d-badge--decorate-black-500",
24
+ "black-900": "d-badge--decorate-black-900",
25
+ "red-200": "d-badge--decorate-red-200",
26
+ "red-300": "d-badge--decorate-red-300",
27
+ "red-400": "d-badge--decorate-red-400",
28
+ "purple-200": "d-badge--decorate-purple-200",
29
+ "purple-300": "d-badge--decorate-purple-300",
30
+ "purple-400": "d-badge--decorate-purple-400",
31
+ "purple-500": "d-badge--decorate-purple-500",
32
+ "blue-200": "d-badge--decorate-blue-200",
33
+ "blue-300": "d-badge--decorate-blue-300",
34
+ "blue-400": "d-badge--decorate-blue-400",
35
+ "green-300": "d-badge--decorate-green-300",
36
+ "green-400": "d-badge--decorate-green-400",
37
+ "green-500": "d-badge--decorate-green-500",
38
+ "gold-300": "d-badge--decorate-gold-300",
39
+ "gold-400": "d-badge--decorate-gold-400",
40
+ "gold-500": "d-badge--decorate-gold-500",
41
+ "magenta-200": "d-badge--decorate-magenta-200",
42
+ "magenta-300": "d-badge--decorate-magenta-300",
43
+ "magenta-400": "d-badge--decorate-magenta-400"
44
+ };
45
+ const _sfc_main = {
46
+ name: "DtBadge",
47
+ components: {
48
+ DtIcon: lib_icon.DtIcon
49
+ },
50
+ props: {
51
+ /**
52
+ * Icon on the left side of the badge. Supports any valid icon name from the icon catalog at
53
+ * https://dialtone.dialpad.com/components/icon.html#icon-catalog. If type:'ai' is set, the ai icon
54
+ * will automatically be shown here, but this can be overridden by setting this prop.
55
+ */
56
+ iconLeft: {
57
+ type: String,
58
+ default: ""
59
+ },
60
+ /**
61
+ * Icon on the right side of the badge. Supports any valid icon name from the icon catalog at
62
+ * https://dialtone.dialpad.com/components/icon.html#icon-catalog
63
+ */
64
+ iconRight: {
65
+ type: String,
66
+ default: ""
67
+ },
68
+ /**
69
+ * Text for the badge content
70
+ */
71
+ text: {
72
+ type: String,
73
+ default: ""
74
+ },
75
+ /**
76
+ * The kind of badge which determines the styling
77
+ * @values label, count
78
+ */
79
+ kind: {
80
+ type: String,
81
+ default: "label",
82
+ validator: (kind) => Object.keys(BADGE_KIND_MODIFIERS).includes(kind)
83
+ },
84
+ /**
85
+ * Color for the badge background
86
+ * @values default, info, success, warning, critical, bulletin, ai
87
+ */
88
+ type: {
89
+ type: String,
90
+ default: "default",
91
+ validator: (type) => Object.keys(BADGE_TYPE_MODIFIERS).includes(type)
92
+ },
93
+ /**
94
+ * Decoration for the badge. This can be only used with kind: label and type: default
95
+ * with no iconLeft and iconRight
96
+ * @values default, black-400, black-500, black-900, red-200, red-300, red-400, purple-200,
97
+ * purple-300, purple-400, purple-500, blue-200, blue-300, blue-400, green-300, green-400,
98
+ * green-500, gold-300, gold-400, gold-500, magenta-200, magenta-300, magenta-400
99
+ */
100
+ decoration: {
101
+ type: String,
102
+ default: void 0,
103
+ validator: (type) => Object.keys(BADGE_DECORATION_MODIFIERS).includes(type)
104
+ },
105
+ /**
106
+ * Used to customize the label container
107
+ */
108
+ labelClass: {
109
+ type: [String, Array, Object],
110
+ default: ""
111
+ }
112
+ },
113
+ data() {
114
+ return {
115
+ BADGE_TYPE_MODIFIERS,
116
+ BADGE_KIND_MODIFIERS,
117
+ BADGE_DECORATION_MODIFIERS
118
+ };
119
+ },
120
+ computed: {
121
+ hasIcons() {
122
+ return this.iconLeft !== "" || this.iconRight !== "";
123
+ }
124
+ },
125
+ watch: {
126
+ $props: {
127
+ immediate: true,
128
+ deep: true,
129
+ handler() {
130
+ this.validateProps();
131
+ }
132
+ }
133
+ },
134
+ methods: {
135
+ validateProps() {
136
+ this.validateTypePropCombination();
137
+ this.validateDecorationPropCombination();
138
+ },
139
+ validateTypePropCombination() {
140
+ if (this.type === "ai" && this.kind === "count") {
141
+ console.error("DtBadge error: type: 'ai' with kind: 'count' is an invalid combination.");
142
+ }
143
+ },
144
+ validateDecorationPropCombination() {
145
+ if (!this.decoration)
146
+ return;
147
+ if (this.kind !== "label" || this.type !== "default") {
148
+ console.error("DtBadge error: decoration prop can only be used with kind: 'label' and type: 'default'.");
149
+ }
150
+ if (this.hasIcons) {
151
+ console.error("DtBadge error: decoration prop cannot be used with iconLeft or iconRight.");
152
+ }
153
+ }
154
+ }
155
+ };
156
+ var _sfc_render = function render() {
157
+ var _vm = this, _c = _vm._self._c;
158
+ return _c("span", { class: [
159
+ "d-badge",
160
+ _vm.BADGE_TYPE_MODIFIERS[_vm.type],
161
+ _vm.BADGE_KIND_MODIFIERS[_vm.kind],
162
+ _vm.BADGE_DECORATION_MODIFIERS[_vm.decoration]
163
+ ], attrs: { "data-qa": "dt-badge" } }, [_vm.decoration ? _c("span", { staticClass: "d-badge__decorative" }) : _vm._e(), _vm.iconLeft || _vm.type === "ai" ? _c("span", { staticClass: "d-badge__icon-left" }, [_c("dt-icon", { attrs: { "name": _vm.iconLeft || "dialpad-ai", "size": "200" } })], 1) : _vm._e(), _c("span", { class: ["d-badge__label", _vm.labelClass] }, [_vm._t("default", function() {
164
+ return [_vm._v(" " + _vm._s(_vm.text) + " ")];
165
+ })], 2), _vm.iconRight ? _c("span", { staticClass: "d-badge__icon-right" }, [_c("dt-icon", { attrs: { "name": _vm.iconRight, "size": "200" } })], 1) : _vm._e()]);
166
+ };
167
+ var _sfc_staticRenderFns = [];
168
+ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
169
+ _sfc_main,
170
+ _sfc_render,
171
+ _sfc_staticRenderFns,
172
+ false,
173
+ null,
174
+ null,
175
+ null,
176
+ null
177
+ );
178
+ const DtBadge = __component__.exports;
179
+ exports.BADGE_DECORATION_MODIFIERS = BADGE_DECORATION_MODIFIERS;
180
+ exports.BADGE_KIND_MODIFIERS = BADGE_KIND_MODIFIERS;
181
+ exports.BADGE_TYPE_MODIFIERS = BADGE_TYPE_MODIFIERS;
182
+ exports.DtBadge = DtBadge;
2
183
  //# sourceMappingURL=badge.cjs.map