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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (763) hide show
  1. package/dist/common/constants/index.cjs +1 -1
  2. package/dist/common/constants/index.cjs.map +1 -1
  3. package/dist/common/constants/index.js +37 -20
  4. package/dist/common/constants/index.js.map +1 -1
  5. package/dist/common/constants/sizes.cjs +2 -0
  6. package/dist/common/constants/sizes.cjs.map +1 -0
  7. package/dist/common/constants/sizes.js +20 -0
  8. package/dist/common/constants/sizes.js.map +1 -0
  9. package/dist/common/mixins/index.cjs +1 -1
  10. package/dist/common/mixins/index.js +9 -7
  11. package/dist/common/mixins/index.js.map +1 -1
  12. package/dist/common/mixins/mode.cjs +2 -0
  13. package/dist/common/mixins/mode.cjs.map +1 -0
  14. package/dist/common/mixins/mode.js +82 -0
  15. package/dist/common/mixins/mode.js.map +1 -0
  16. package/dist/component-documentation.json +1 -1
  17. package/dist/dialtone-vue.cjs +1 -1
  18. package/dist/dialtone-vue.js +464 -408
  19. package/dist/dialtone-vue.js.map +1 -1
  20. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  21. package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  22. package/dist/lib/attachment-carousel/attachment-carousel.js +8 -8
  23. package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  24. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  25. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  26. package/dist/lib/avatar/avatar-constants.js +169 -43
  27. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  28. package/dist/lib/avatar/avatar.cjs +1 -1
  29. package/dist/lib/avatar/avatar.cjs.map +1 -1
  30. package/dist/lib/avatar/avatar.js +186 -100
  31. package/dist/lib/avatar/avatar.js.map +1 -1
  32. package/dist/lib/avatar/index.cjs +1 -1
  33. package/dist/lib/avatar/index.js +16 -10
  34. package/dist/lib/badge/badge.cjs +1 -1
  35. package/dist/lib/badge/badge.cjs.map +1 -1
  36. package/dist/lib/badge/badge.js +47 -35
  37. package/dist/lib/badge/badge.js.map +1 -1
  38. package/dist/lib/banner/banner.cjs +1 -1
  39. package/dist/lib/banner/banner.cjs.map +1 -1
  40. package/dist/lib/banner/banner.js +19 -18
  41. package/dist/lib/banner/banner.js.map +1 -1
  42. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  43. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  44. package/dist/lib/breadcrumbs/breadcrumb-item.js +4 -1
  45. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  46. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  47. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  48. package/dist/lib/breadcrumbs/breadcrumbs.js +22 -18
  49. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  50. package/dist/lib/button/button-constants.cjs +1 -1
  51. package/dist/lib/button/button-constants.cjs.map +1 -1
  52. package/dist/lib/button/button-constants.js +33 -15
  53. package/dist/lib/button/button-constants.js.map +1 -1
  54. package/dist/lib/button/button.cjs +1 -1
  55. package/dist/lib/button/button.cjs.map +1 -1
  56. package/dist/lib/button/button.js +195 -78
  57. package/dist/lib/button/button.js.map +1 -1
  58. package/dist/lib/button-group/button-group.cjs.map +1 -1
  59. package/dist/lib/button-group/button-group.js +1 -0
  60. package/dist/lib/button-group/button-group.js.map +1 -1
  61. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  62. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  63. package/dist/lib/callbar-button/callbar-button.js +14 -15
  64. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  65. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  66. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  67. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +44 -32
  68. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  69. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  70. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  71. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +40 -28
  72. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  73. package/dist/lib/callbox/callbox.cjs +1 -1
  74. package/dist/lib/callbox/callbox.cjs.map +1 -1
  75. package/dist/lib/callbox/callbox.js +48 -48
  76. package/dist/lib/callbox/callbox.js.map +1 -1
  77. package/dist/lib/checkbox/checkbox.cjs +1 -1
  78. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  79. package/dist/lib/checkbox/checkbox.js +97 -43
  80. package/dist/lib/checkbox/checkbox.js.map +1 -1
  81. package/dist/lib/chip/chip-constants.cjs +1 -1
  82. package/dist/lib/chip/chip-constants.cjs.map +1 -1
  83. package/dist/lib/chip/chip-constants.js +17 -2
  84. package/dist/lib/chip/chip-constants.js.map +1 -1
  85. package/dist/lib/chip/chip.cjs +1 -1
  86. package/dist/lib/chip/chip.cjs.map +1 -1
  87. package/dist/lib/chip/chip.js +17 -17
  88. package/dist/lib/chip/chip.js.map +1 -1
  89. package/dist/lib/codeblock/codeblock-constants.cjs +2 -0
  90. package/dist/lib/codeblock/codeblock-constants.cjs.map +1 -0
  91. package/dist/lib/codeblock/codeblock-constants.js +12 -0
  92. package/dist/lib/codeblock/codeblock-constants.js.map +1 -0
  93. package/dist/lib/codeblock/codeblock.cjs +1 -2
  94. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  95. package/dist/lib/codeblock/codeblock.js +38 -12
  96. package/dist/lib/codeblock/codeblock.js.map +1 -1
  97. package/dist/lib/collapsible/collapsible.cjs +1 -1
  98. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  99. package/dist/lib/collapsible/collapsible.js +1 -1
  100. package/dist/lib/collapsible/collapsible.js.map +1 -1
  101. package/dist/lib/combobox/combobox.cjs +2 -2
  102. package/dist/lib/combobox/combobox.cjs.map +1 -1
  103. package/dist/lib/combobox/combobox.js +22 -21
  104. package/dist/lib/combobox/combobox.js.map +1 -1
  105. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
  106. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  107. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +16 -6
  108. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  109. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  110. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  111. package/dist/lib/combobox-multi-select/combobox-multi-select.js +48 -46
  112. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  113. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  114. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  115. package/dist/lib/combobox-with-popover/combobox-with-popover.js +37 -29
  116. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  117. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  118. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  119. package/dist/lib/contact-centers-row/contact-centers-row.js +36 -36
  120. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  121. package/dist/lib/contact-info/contact-info.cjs +1 -1
  122. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  123. package/dist/lib/contact-info/contact-info.js +56 -56
  124. package/dist/lib/contact-info/contact-info.js.map +1 -1
  125. package/dist/lib/contact-row/contact-row.cjs +1 -1
  126. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  127. package/dist/lib/contact-row/contact-row.js +3 -3
  128. package/dist/lib/contact-row/contact-row.js.map +1 -1
  129. package/dist/lib/datepicker/datepicker.cjs +1 -1
  130. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  131. package/dist/lib/datepicker/datepicker.js +93 -95
  132. package/dist/lib/datepicker/datepicker.js.map +1 -1
  133. package/dist/lib/description-list/description-list.cjs +1 -1
  134. package/dist/lib/description-list/description-list.cjs.map +1 -1
  135. package/dist/lib/description-list/description-list.js +2 -2
  136. package/dist/lib/description-list/description-list.js.map +1 -1
  137. package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
  138. package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
  139. package/dist/lib/dropdown/dropdown-constants.js +2 -2
  140. package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
  141. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  142. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  143. package/dist/lib/dropdown/dropdown-list.js +29 -18
  144. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  145. package/dist/lib/dropdown/dropdown.cjs +1 -1
  146. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  147. package/dist/lib/dropdown/dropdown.js +27 -19
  148. package/dist/lib/dropdown/dropdown.js.map +1 -1
  149. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  150. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  151. package/dist/lib/editor/EditorToolbarButton.js +6 -6
  152. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  153. package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
  154. package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
  155. package/dist/lib/editor/EditorToolbarDropdownButton.js +3 -3
  156. package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
  157. package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
  158. package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
  159. package/dist/lib/editor/EditorToolbarPopoverButton.js +3 -3
  160. package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
  161. package/dist/lib/editor/editor.cjs +1 -1
  162. package/dist/lib/editor/editor.cjs.map +1 -1
  163. package/dist/lib/editor/editor.js +48 -48
  164. package/dist/lib/editor/editor.js.map +1 -1
  165. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  166. package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  167. package/dist/lib/emoji-picker/emoji-picker.js +62 -59
  168. package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
  169. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  170. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  171. package/dist/lib/emoji-row/emoji-row.js +10 -10
  172. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  173. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  174. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +2 -1
  175. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  176. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  177. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  178. package/dist/lib/empty-state/empty-state-constants.js +54 -12
  179. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  180. package/dist/lib/empty-state/empty-state.cjs +1 -1
  181. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  182. package/dist/lib/empty-state/empty-state.js +60 -36
  183. package/dist/lib/empty-state/empty-state.js.map +1 -1
  184. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  185. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  186. package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
  187. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  188. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  189. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  190. package/dist/lib/feed-item-row/feed-item-row.js +12 -12
  191. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  192. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  193. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  194. package/dist/lib/filter-pill/filter-pill.js +569 -0
  195. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  196. package/dist/lib/filter-pill/index.cjs +2 -0
  197. package/dist/lib/filter-pill/index.cjs.map +1 -0
  198. package/dist/lib/filter-pill/index.js +5 -0
  199. package/dist/lib/filter-pill/index.js.map +1 -0
  200. package/dist/lib/general-row/general-row.cjs +1 -1
  201. package/dist/lib/general-row/general-row.cjs.map +1 -1
  202. package/dist/lib/general-row/general-row.js +154 -100
  203. package/dist/lib/general-row/general-row.js.map +1 -1
  204. package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
  205. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  206. package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
  207. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  208. package/dist/lib/group-row/group-row.cjs +1 -1
  209. package/dist/lib/group-row/group-row.cjs.map +1 -1
  210. package/dist/lib/group-row/group-row.js +2 -2
  211. package/dist/lib/group-row/group-row.js.map +1 -1
  212. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  213. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  214. package/dist/lib/grouped-chip/grouped-chip.js +33 -33
  215. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  216. package/dist/lib/hovercard/hovercard.cjs +1 -1
  217. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  218. package/dist/lib/hovercard/hovercard.js +37 -28
  219. package/dist/lib/hovercard/hovercard.js.map +1 -1
  220. package/dist/lib/icon/icon.cjs +1 -1
  221. package/dist/lib/icon/icon.cjs.map +1 -1
  222. package/dist/lib/icon/icon.js +1 -1
  223. package/dist/lib/icon/icon.js.map +1 -1
  224. package/dist/lib/illustration/illustration.cjs +1 -1
  225. package/dist/lib/illustration/illustration.cjs.map +1 -1
  226. package/dist/lib/illustration/illustration.js +1 -1
  227. package/dist/lib/illustration/illustration.js.map +1 -1
  228. package/dist/lib/image-viewer/image-viewer.cjs +1 -1
  229. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  230. package/dist/lib/image-viewer/image-viewer.js +28 -27
  231. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  232. package/dist/lib/input/input-constants.cjs +1 -1
  233. package/dist/lib/input/input-constants.cjs.map +1 -1
  234. package/dist/lib/input/input-constants.js +43 -22
  235. package/dist/lib/input/input-constants.js.map +1 -1
  236. package/dist/lib/input/input.cjs +1 -1
  237. package/dist/lib/input/input.cjs.map +1 -1
  238. package/dist/lib/input/input.js +165 -79
  239. package/dist/lib/input/input.js.map +1 -1
  240. package/dist/lib/input-group/input-group.cjs +1 -1
  241. package/dist/lib/input-group/input-group.cjs.map +1 -1
  242. package/dist/lib/input-group/input-group.js +35 -28
  243. package/dist/lib/input-group/input-group.js.map +1 -1
  244. package/dist/lib/item-layout/item-layout.cjs +3 -3
  245. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  246. package/dist/lib/item-layout/item-layout.js +74 -39
  247. package/dist/lib/item-layout/item-layout.js.map +1 -1
  248. package/dist/lib/ivr-node/ivr-node.cjs +1 -1
  249. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  250. package/dist/lib/ivr-node/ivr-node.js +1 -1
  251. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  252. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  253. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  254. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +57 -43
  255. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  256. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  257. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  258. package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
  259. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  260. package/dist/lib/link/link.cjs +1 -1
  261. package/dist/lib/link/link.cjs.map +1 -1
  262. package/dist/lib/link/link.js +22 -12
  263. package/dist/lib/link/link.js.map +1 -1
  264. package/dist/lib/list-item/list-item.cjs +1 -1
  265. package/dist/lib/list-item/list-item.cjs.map +1 -1
  266. package/dist/lib/list-item/list-item.js +27 -16
  267. package/dist/lib/list-item/list-item.js.map +1 -1
  268. package/dist/lib/message-input/message-input-button.cjs +1 -1
  269. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  270. package/dist/lib/message-input/message-input-button.js +4 -4
  271. package/dist/lib/message-input/message-input-button.js.map +1 -1
  272. package/dist/lib/message-input/message-input-link.cjs +1 -1
  273. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  274. package/dist/lib/message-input/message-input-link.js +12 -12
  275. package/dist/lib/message-input/message-input-link.js.map +1 -1
  276. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  277. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  278. package/dist/lib/message-input/message-input-topbar.js +2 -2
  279. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  280. package/dist/lib/message-input/message-input.cjs +1 -1
  281. package/dist/lib/message-input/message-input.cjs.map +1 -1
  282. package/dist/lib/message-input/message-input.js +52 -52
  283. package/dist/lib/message-input/message-input.js.map +1 -1
  284. package/dist/lib/modal/modal.cjs +1 -1
  285. package/dist/lib/modal/modal.cjs.map +1 -1
  286. package/dist/lib/modal/modal.js +120 -106
  287. package/dist/lib/modal/modal.js.map +1 -1
  288. package/dist/lib/mode-directive/index.cjs +2 -0
  289. package/dist/lib/mode-directive/index.cjs.map +1 -0
  290. package/dist/lib/mode-directive/index.js +5 -0
  291. package/dist/lib/mode-directive/index.js.map +1 -0
  292. package/dist/lib/mode-directive/mode.cjs +2 -0
  293. package/dist/lib/mode-directive/mode.cjs.map +1 -0
  294. package/dist/lib/mode-directive/mode.js +75 -0
  295. package/dist/lib/mode-directive/mode.js.map +1 -0
  296. package/dist/lib/mode-island/index.cjs +2 -0
  297. package/dist/lib/mode-island/index.cjs.map +1 -0
  298. package/dist/lib/mode-island/index.js +7 -0
  299. package/dist/lib/mode-island/index.js.map +1 -0
  300. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  301. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  302. package/dist/lib/mode-island/mode-island-constants.js +12 -0
  303. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  304. package/dist/lib/mode-island/mode-island.cjs +2 -0
  305. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  306. package/dist/lib/mode-island/mode-island.js +130 -0
  307. package/dist/lib/mode-island/mode-island.js.map +1 -0
  308. package/dist/lib/mode-island/utils.cjs +2 -0
  309. package/dist/lib/mode-island/utils.cjs.map +1 -0
  310. package/dist/lib/mode-island/utils.js +32 -0
  311. package/dist/lib/mode-island/utils.js.map +1 -0
  312. package/dist/lib/mode-island/validators.cjs +2 -0
  313. package/dist/lib/mode-island/validators.cjs.map +1 -0
  314. package/dist/lib/mode-island/validators.js +12 -0
  315. package/dist/lib/mode-island/validators.js.map +1 -0
  316. package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
  317. package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
  318. package/dist/lib/motion-text/motion-text-constants.js +18 -8
  319. package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
  320. package/dist/lib/motion-text/motion-text.cjs +1 -1
  321. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  322. package/dist/lib/motion-text/motion-text.js +17 -17
  323. package/dist/lib/motion-text/motion-text.js.map +1 -1
  324. package/dist/lib/notice/notice-action.cjs +1 -1
  325. package/dist/lib/notice/notice-action.cjs.map +1 -1
  326. package/dist/lib/notice/notice-action.js +9 -9
  327. package/dist/lib/notice/notice-action.js.map +1 -1
  328. package/dist/lib/notice/notice-content.cjs +1 -1
  329. package/dist/lib/notice/notice-content.cjs.map +1 -1
  330. package/dist/lib/notice/notice-content.js +38 -21
  331. package/dist/lib/notice/notice-content.js.map +1 -1
  332. package/dist/lib/notice/notice-icon.cjs +1 -1
  333. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  334. package/dist/lib/notice/notice-icon.js +1 -1
  335. package/dist/lib/notice/notice-icon.js.map +1 -1
  336. package/dist/lib/notice/notice.cjs +1 -1
  337. package/dist/lib/notice/notice.cjs.map +1 -1
  338. package/dist/lib/notice/notice.js +20 -19
  339. package/dist/lib/notice/notice.js.map +1 -1
  340. package/dist/lib/pagination/pagination.cjs +1 -1
  341. package/dist/lib/pagination/pagination.cjs.map +1 -1
  342. package/dist/lib/pagination/pagination.js +16 -15
  343. package/dist/lib/pagination/pagination.js.map +1 -1
  344. package/dist/lib/popover/popover-constants.cjs +1 -1
  345. package/dist/lib/popover/popover-constants.cjs.map +1 -1
  346. package/dist/lib/popover/popover-constants.js +16 -16
  347. package/dist/lib/popover/popover-constants.js.map +1 -1
  348. package/dist/lib/popover/popover-header-footer.cjs +1 -1
  349. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  350. package/dist/lib/popover/popover-header-footer.js +19 -12
  351. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  352. package/dist/lib/popover/popover.cjs +1 -1
  353. package/dist/lib/popover/popover.cjs.map +1 -1
  354. package/dist/lib/popover/popover.js +80 -62
  355. package/dist/lib/popover/popover.js.map +1 -1
  356. package/dist/lib/radio/radio.cjs +1 -1
  357. package/dist/lib/radio/radio.cjs.map +1 -1
  358. package/dist/lib/radio/radio.js +103 -41
  359. package/dist/lib/radio/radio.js.map +1 -1
  360. package/dist/lib/rich-text-editor/rich-text-editor.cjs +3 -3
  361. package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  362. package/dist/lib/rich-text-editor/rich-text-editor.js +637 -590
  363. package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  364. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  365. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  366. package/dist/lib/root-layout/root-layout-constants.js +4 -2
  367. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  368. package/dist/lib/root-layout/root-layout.cjs +1 -1
  369. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  370. package/dist/lib/root-layout/root-layout.js +15 -13
  371. package/dist/lib/root-layout/root-layout.js.map +1 -1
  372. package/dist/lib/segmented-control/index.cjs +2 -0
  373. package/dist/lib/segmented-control/index.cjs.map +1 -0
  374. package/dist/lib/segmented-control/index.js +20 -0
  375. package/dist/lib/segmented-control/index.js.map +1 -0
  376. package/dist/lib/segmented-control/segmented-control-constants.cjs +2 -0
  377. package/dist/lib/segmented-control/segmented-control-constants.cjs.map +1 -0
  378. package/dist/lib/segmented-control/segmented-control-constants.js +45 -0
  379. package/dist/lib/segmented-control/segmented-control-constants.js.map +1 -0
  380. package/dist/lib/segmented-control/segmented-control-item.cjs +2 -0
  381. package/dist/lib/segmented-control/segmented-control-item.cjs.map +1 -0
  382. package/dist/lib/segmented-control/segmented-control-item.js +124 -0
  383. package/dist/lib/segmented-control/segmented-control-item.js.map +1 -0
  384. package/dist/lib/segmented-control/segmented-control.cjs +2 -0
  385. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -0
  386. package/dist/lib/segmented-control/segmented-control.js +236 -0
  387. package/dist/lib/segmented-control/segmented-control.js.map +1 -0
  388. package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
  389. package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
  390. package/dist/lib/select-menu/select-menu-constants.js +13 -6
  391. package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
  392. package/dist/lib/select-menu/select-menu.cjs +1 -1
  393. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  394. package/dist/lib/select-menu/select-menu.js +133 -67
  395. package/dist/lib/select-menu/select-menu.js.map +1 -1
  396. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  397. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  398. package/dist/lib/settings-menu-button/settings-menu-button.js +20 -20
  399. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  400. package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
  401. package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
  402. package/dist/lib/skeleton/skeleton-constants.js +26 -14
  403. package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
  404. package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
  405. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  406. package/dist/lib/skeleton/skeleton-list-item.js +3 -3
  407. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  408. package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
  409. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  410. package/dist/lib/skeleton/skeleton-shape.js +11 -11
  411. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  412. package/dist/lib/split-button/split-button-constants.cjs +1 -1
  413. package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
  414. package/dist/lib/split-button/split-button-constants.js +7 -0
  415. package/dist/lib/split-button/split-button-constants.js.map +1 -1
  416. package/dist/lib/split-button/split-button-end.cjs +2 -0
  417. package/dist/lib/split-button/split-button-end.cjs.map +1 -0
  418. package/dist/lib/split-button/{split-button-omega.js → split-button-end.js} +16 -16
  419. package/dist/lib/split-button/split-button-end.js.map +1 -0
  420. package/dist/lib/split-button/split-button-start.cjs +2 -0
  421. package/dist/lib/split-button/split-button-start.cjs.map +1 -0
  422. package/dist/lib/split-button/split-button-start.js +231 -0
  423. package/dist/lib/split-button/split-button-start.js.map +1 -0
  424. package/dist/lib/split-button/split-button.cjs +1 -1
  425. package/dist/lib/split-button/split-button.cjs.map +1 -1
  426. package/dist/lib/split-button/split-button.js +337 -101
  427. package/dist/lib/split-button/split-button.js.map +1 -1
  428. package/dist/lib/stack/stack-constants.cjs +1 -1
  429. package/dist/lib/stack/stack-constants.cjs.map +1 -1
  430. package/dist/lib/stack/stack-constants.js +1 -1
  431. package/dist/lib/stack/stack-constants.js.map +1 -1
  432. package/dist/lib/stack/stack.cjs.map +1 -1
  433. package/dist/lib/stack/stack.js +5 -3
  434. package/dist/lib/stack/stack.js.map +1 -1
  435. package/dist/lib/tab/index.cjs +1 -1
  436. package/dist/lib/tab/index.js +14 -11
  437. package/dist/lib/tab/tab-group.cjs +1 -1
  438. package/dist/lib/tab/tab-group.cjs.map +1 -1
  439. package/dist/lib/tab/tab-group.js +171 -56
  440. package/dist/lib/tab/tab-group.js.map +1 -1
  441. package/dist/lib/tab/tab.cjs +1 -1
  442. package/dist/lib/tab/tab.cjs.map +1 -1
  443. package/dist/lib/tab/tab.js +105 -31
  444. package/dist/lib/tab/tab.js.map +1 -1
  445. package/dist/lib/tab/tabs-constants.cjs +1 -1
  446. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  447. package/dist/lib/tab/tabs-constants.js +31 -10
  448. package/dist/lib/tab/tabs-constants.js.map +1 -1
  449. package/dist/lib/text/index.cjs +2 -0
  450. package/dist/lib/text/index.cjs.map +1 -0
  451. package/dist/lib/text/index.js +20 -0
  452. package/dist/lib/text/index.js.map +1 -0
  453. package/dist/lib/text/text-constants.cjs +2 -0
  454. package/dist/lib/text/text-constants.cjs.map +1 -0
  455. package/dist/lib/text/text-constants.js +78 -0
  456. package/dist/lib/text/text-constants.js.map +1 -0
  457. package/dist/lib/text/text-tone-tokens.cjs +2 -0
  458. package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
  459. package/dist/lib/text/text-tone-tokens.js +33 -0
  460. package/dist/lib/text/text-tone-tokens.js.map +1 -0
  461. package/dist/lib/text/text.cjs +2 -0
  462. package/dist/lib/text/text.cjs.map +1 -0
  463. package/dist/lib/text/text.js +206 -0
  464. package/dist/lib/text/text.js.map +1 -0
  465. package/dist/lib/toast/toast.cjs +1 -1
  466. package/dist/lib/toast/toast.cjs.map +1 -1
  467. package/dist/lib/toast/toast.js +12 -11
  468. package/dist/lib/toast/toast.js.map +1 -1
  469. package/dist/lib/toggle/toggle-constants.cjs +1 -1
  470. package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
  471. package/dist/lib/toggle/toggle-constants.js +6 -2
  472. package/dist/lib/toggle/toggle-constants.js.map +1 -1
  473. package/dist/lib/toggle/toggle.cjs +1 -1
  474. package/dist/lib/toggle/toggle.cjs.map +1 -1
  475. package/dist/lib/toggle/toggle.js +39 -35
  476. package/dist/lib/toggle/toggle.js.map +1 -1
  477. package/dist/lib/tooltip/tooltip.cjs +2 -2
  478. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  479. package/dist/lib/tooltip/tooltip.js +31 -26
  480. package/dist/lib/tooltip/tooltip.js.map +1 -1
  481. package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
  482. package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
  483. package/dist/lib/tooltip-directive/tooltip.js +40 -39
  484. package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
  485. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  486. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  487. package/dist/lib/top-banner-info/top-banner-info.js +16 -16
  488. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  489. package/dist/lib/unread-pill/unread-pill.cjs +1 -1
  490. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  491. package/dist/lib/unread-pill/unread-pill.js +1 -1
  492. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  493. package/dist/localization/en-US.cjs +5 -0
  494. package/dist/localization/en-US.cjs.map +1 -1
  495. package/dist/localization/en-US.js +5 -0
  496. package/dist/localization/en-US.js.map +1 -1
  497. package/dist/mode_constants-C1GFodVj.js +14 -0
  498. package/dist/mode_constants-C1GFodVj.js.map +1 -0
  499. package/dist/mode_constants-DeLSnTcQ.cjs +2 -0
  500. package/dist/mode_constants-DeLSnTcQ.cjs.map +1 -0
  501. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  502. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  503. package/dist/shared/sr_only_close_button.cjs +1 -1
  504. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  505. package/dist/shared/sr_only_close_button.js +1 -1
  506. package/dist/shared/sr_only_close_button.js.map +1 -1
  507. package/dist/style.css +1 -1
  508. package/dist/types/common/constants/index.d.ts +25 -19
  509. package/dist/types/common/constants/index.d.ts.map +1 -1
  510. package/dist/types/common/constants/sizes.d.ts +22 -0
  511. package/dist/types/common/constants/sizes.d.ts.map +1 -0
  512. package/dist/types/common/mixins/index.d.ts +1 -0
  513. package/dist/types/common/mixins/mode.d.ts +25 -0
  514. package/dist/types/common/mixins/mode.d.ts.map +1 -0
  515. package/dist/types/common/mode_constants.d.ts +37 -0
  516. package/dist/types/common/mode_constants.d.ts.map +1 -0
  517. package/dist/types/common/sr_only_close_button.vue.d.ts +53 -7
  518. package/dist/types/common/sr_only_close_button.vue.d.ts.map +1 -1
  519. package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
  520. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  521. package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
  522. package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
  523. package/dist/types/components/avatar/index.d.ts +1 -1
  524. package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
  525. package/dist/types/components/banner/banner.vue.d.ts +246 -15
  526. package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
  527. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
  528. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  529. package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
  530. package/dist/types/components/button/button.vue.d.ts +53 -7
  531. package/dist/types/components/button/button.vue.d.ts.map +1 -1
  532. package/dist/types/components/button/button_constants.d.ts +28 -19
  533. package/dist/types/components/button/button_constants.d.ts.map +1 -1
  534. package/dist/types/components/checkbox/checkbox.vue.d.ts +178 -4
  535. package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  536. package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +138 -0
  537. package/dist/types/components/chip/chip.vue.d.ts +58 -12
  538. package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
  539. package/dist/types/components/chip/chip_constants.d.ts +24 -21
  540. package/dist/types/components/chip/chip_constants.d.ts.map +1 -1
  541. package/dist/types/components/codeblock/codeblock.vue.d.ts +25 -2
  542. package/dist/types/components/codeblock/codeblock.vue.d.ts.map +1 -1
  543. package/dist/types/components/codeblock/codeblock_constants.d.ts +9 -0
  544. package/dist/types/components/codeblock/codeblock_constants.d.ts.map +1 -0
  545. package/dist/types/components/collapsible/collapsible.vue.d.ts +53 -7
  546. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  547. package/dist/types/components/combobox/combobox.vue.d.ts +109 -34
  548. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  549. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +40 -7
  550. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  551. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +64 -22
  552. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  553. package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts +16 -13
  554. package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
  555. package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts +388 -82
  556. package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  557. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  558. package/dist/types/components/dropdown/dropdown.vue.d.ts +170 -14
  559. package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  560. package/dist/types/components/emoji/emoji.vue.d.ts +24 -15
  561. package/dist/types/components/emoji_picker/emoji_picker.vue.d.ts +196 -6
  562. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts +196 -6
  563. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  564. package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  565. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +24 -15
  566. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  567. package/dist/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  568. package/dist/types/components/empty_state/empty_state_constants.d.ts +52 -31
  569. package/dist/types/components/empty_state/empty_state_constants.d.ts.map +1 -1
  570. package/dist/types/components/filter_pill/filter_pill.vue.d.ts +4487 -0
  571. package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  572. package/dist/types/components/filter_pill/index.d.ts +2 -0
  573. package/dist/types/components/filter_pill/index.d.ts.map +1 -0
  574. package/dist/types/components/hovercard/hovercard.vue.d.ts +368 -29
  575. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  576. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +131 -14
  577. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  578. package/dist/types/components/input/input.vue.d.ts +187 -5
  579. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  580. package/dist/types/components/input/input_constants.d.ts +44 -46
  581. package/dist/types/components/input/input_constants.d.ts.map +1 -1
  582. package/dist/types/components/input_group/input_group.vue.d.ts +138 -0
  583. package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
  584. package/dist/types/components/item_layout/item_layout.vue.d.ts +37 -6
  585. package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
  586. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +138 -0
  587. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  588. package/dist/types/components/link/link.vue.d.ts +9 -0
  589. package/dist/types/components/list_item/list_item.vue.d.ts +40 -7
  590. package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
  591. package/dist/types/components/modal/modal.vue.d.ts +271 -16
  592. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  593. package/dist/types/components/mode_island/index.d.ts +3 -0
  594. package/dist/types/components/mode_island/index.d.ts.map +1 -0
  595. package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
  596. package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
  597. package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
  598. package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
  599. package/dist/types/components/mode_island/utils.d.ts +12 -0
  600. package/dist/types/components/mode_island/utils.d.ts.map +1 -0
  601. package/dist/types/components/mode_island/validators.d.ts +6 -0
  602. package/dist/types/components/mode_island/validators.d.ts.map +1 -0
  603. package/dist/types/components/motion_text/motion_text_constants.d.ts +27 -23
  604. package/dist/types/components/motion_text/motion_text_constants.d.ts.map +1 -1
  605. package/dist/types/components/notice/notice.vue.d.ts +246 -15
  606. package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
  607. package/dist/types/components/notice/notice_action.vue.d.ts +106 -14
  608. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  609. package/dist/types/components/notice/notice_content.vue.d.ts +140 -1
  610. package/dist/types/components/notice/notice_content.vue.d.ts.map +1 -1
  611. package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  612. package/dist/types/components/pagination/pagination.vue.d.ts +53 -7
  613. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  614. package/dist/types/components/popover/popover.vue.d.ts +159 -14
  615. package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
  616. package/dist/types/components/popover/popover_header_footer.vue.d.ts +62 -7
  617. package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  618. package/dist/types/components/radio/radio.vue.d.ts +173 -0
  619. package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
  620. package/dist/types/components/radio_group/radio_group.vue.d.ts +138 -0
  621. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
  622. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  623. package/dist/types/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  624. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +24 -15
  625. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +24 -15
  626. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
  627. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +209 -25
  628. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  629. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +140 -1
  630. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  631. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +40 -7
  632. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  633. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +399 -26
  634. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  635. package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
  636. package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
  637. package/dist/types/components/segmented_control/index.d.ts +4 -0
  638. package/dist/types/components/segmented_control/index.d.ts.map +1 -0
  639. package/dist/types/components/segmented_control/segmented_control.vue.d.ts +224 -0
  640. package/dist/types/components/segmented_control/segmented_control.vue.d.ts.map +1 -0
  641. package/dist/types/components/segmented_control/segmented_control_constants.d.ts +41 -0
  642. package/dist/types/components/segmented_control/segmented_control_constants.d.ts.map +1 -0
  643. package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts +35 -0
  644. package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts.map +1 -0
  645. package/dist/types/components/select_menu/select_menu.vue.d.ts +182 -18
  646. package/dist/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
  647. package/dist/types/components/select_menu/select_menu_constants.d.ts +12 -7
  648. package/dist/types/components/select_menu/select_menu_constants.d.ts.map +1 -1
  649. package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +13 -10
  650. package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -0
  651. package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  652. package/dist/types/components/skeleton/skeleton-text.vue.d.ts +3 -0
  653. package/dist/types/components/skeleton/skeleton.vue.d.ts +24 -15
  654. package/dist/types/components/skeleton/skeleton_constants.d.ts +18 -13
  655. package/dist/types/components/skeleton/skeleton_constants.d.ts.map +1 -1
  656. package/dist/types/components/split_button/{split_button-omega.vue.d.ts → split_button-end.vue.d.ts} +64 -13
  657. package/dist/types/components/split_button/{split_button-omega.vue.d.ts.map → split_button-end.vue.d.ts.map} +1 -1
  658. package/dist/types/components/split_button/{split_button-alpha.vue.d.ts → split_button-start.vue.d.ts} +125 -11
  659. package/dist/types/components/split_button/split_button-start.vue.d.ts.map +1 -0
  660. package/dist/types/components/split_button/split_button.vue.d.ts +589 -66
  661. package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
  662. package/dist/types/components/split_button/split_button_constants.d.ts +12 -7
  663. package/dist/types/components/split_button/split_button_constants.d.ts.map +1 -1
  664. package/dist/types/components/stack/stack_constants.d.ts.map +1 -1
  665. package/dist/types/components/tab/index.d.ts +1 -1
  666. package/dist/types/components/tab/tab.vue.d.ts +85 -11
  667. package/dist/types/components/tab/tab.vue.d.ts.map +1 -1
  668. package/dist/types/components/tab/tab_group.vue.d.ts +91 -5
  669. package/dist/types/components/tab/tab_group.vue.d.ts.map +1 -1
  670. package/dist/types/components/tab/tabs_constants.d.ts +23 -5
  671. package/dist/types/components/tab/tabs_constants.d.ts.map +1 -1
  672. package/dist/types/components/text/index.d.ts +3 -0
  673. package/dist/types/components/text/index.d.ts.map +1 -0
  674. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
  675. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
  676. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
  677. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
  678. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
  679. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
  680. package/dist/types/components/text/text.vue.d.ts +141 -0
  681. package/dist/types/components/text/text.vue.d.ts.map +1 -0
  682. package/dist/types/components/text/text_constants.d.ts +82 -0
  683. package/dist/types/components/text/text_constants.d.ts.map +1 -0
  684. package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
  685. package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
  686. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +246 -15
  687. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  688. package/dist/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  689. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +246 -15
  690. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  691. package/dist/types/components/toast/toast.vue.d.ts +1033 -109
  692. package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
  693. package/dist/types/components/toggle/toggle.vue.d.ts +14 -6
  694. package/dist/types/components/toggle/toggle.vue.d.ts.map +1 -1
  695. package/dist/types/components/toggle/toggle_constants.d.ts +6 -4
  696. package/dist/types/components/toggle/toggle_constants.d.ts.map +1 -1
  697. package/dist/types/components/tooltip/tooltip.vue.d.ts +27 -1
  698. package/dist/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  699. package/dist/types/directives/mode_directive/index.d.ts +2 -0
  700. package/dist/types/directives/mode_directive/index.d.ts.map +1 -0
  701. package/dist/types/directives/mode_directive/mode.d.ts +6 -0
  702. package/dist/types/directives/mode_directive/mode.d.ts.map +1 -0
  703. package/dist/types/directives/tooltip_directive/tooltip.d.ts.map +1 -1
  704. package/dist/types/index.d.ts +5 -0
  705. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +80 -8
  706. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  707. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +303 -29
  708. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  709. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +293 -30
  710. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  711. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +223 -21
  712. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  713. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +58 -12
  714. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  715. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +237 -28
  716. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  717. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +184 -21
  718. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  719. package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +53 -7
  720. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +223 -21
  721. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  722. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +212 -21
  723. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  724. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +128 -38
  725. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  726. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +90 -13
  727. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  728. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +111 -32
  729. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  730. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +90 -13
  731. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  732. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +218 -8
  733. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  734. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +617 -34
  735. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  736. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +218 -8
  737. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  738. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +53 -7
  739. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  740. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +108 -31
  741. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  742. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
  743. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  744. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +77 -22
  745. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  746. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +557 -64
  747. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  748. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +462 -24
  749. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  750. package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  751. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +462 -24
  752. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  753. package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  754. package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  755. package/package.json +6 -5
  756. package/dist/lib/split-button/split-button-alpha.cjs +0 -2
  757. package/dist/lib/split-button/split-button-alpha.cjs.map +0 -1
  758. package/dist/lib/split-button/split-button-alpha.js +0 -138
  759. package/dist/lib/split-button/split-button-alpha.js.map +0 -1
  760. package/dist/lib/split-button/split-button-omega.cjs +0 -2
  761. package/dist/lib/split-button/split-button-omega.cjs.map +0 -1
  762. package/dist/lib/split-button/split-button-omega.js.map +0 -1
  763. package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.cjs","sources":["../../../components/avatar/avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n :style=\"$attrs.style\"\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 <div\n v-else-if=\"isIconType()\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n :aria-label=\"clickable ? iconAriaLabel : ''\"\n :data-qa=\"iconDataQa\"\n :role=\"clickable ? 'button' : ''\"\n >\n <!-- @slot Slot for avatar icon. It will display if no imageSrc is provided -->\n <slot\n name=\"icon\"\n :icon-size=\"iconSize || AVATAR_ICON_SIZES[size]\"\n />\n </div>\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n <div\n v-if=\"hasOverlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <!-- @slot Slot for overlay icon. -->\n <slot\n v-if=\"hasOverlayIcon\"\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, hasSlotContent } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_RANDOM_COLORS,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_ICON_SIZES,\n} from './avatar_constants';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\nimport { extractInitialsFromName } from './utils';\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 compatConfig: { MODE: 3 },\n name: 'DtAvatar',\n components: { DtPresence },\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 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 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 hasSlotContent,\n };\n },\n\n computed: {\n hasOverlayIcon () {\n return hasSlotContent(this.$slots.overlayIcon);\n },\n\n iconDataQa () {\n return 'dt-avatar-icon';\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n this.$attrs.class,\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n 'd-avatar--group-digits-2': this.showGroup && this.group > 9 && this.group < 100,\n 'd-avatar--group-digits-3': this.showGroup && this.group > 99,\n [`d-avatar--color-${this.getColor()}`]: !this.isIconType(),\n 'd-avatar--clickable': this.clickable,\n 'd-avatar--presence': this.presence && !this.showGroup,\n },\n ];\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n { 'd-avatar__overlay-icon': this.hasOverlayIcon },\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 isIconType () {\n return hasSlotContent(this.$slots.icon);\n },\n\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_RANDOM_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"],"names":["_sfc_main","DtPresence","getUniqueString","size","AVATAR_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","state","group","AVATAR_GROUP_VALIDATOR","ICON_SIZE_MODIFIERS","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","AVATAR_ICON_SIZES","hasSlotContent","newSrc","el","initials","extractInitialsFromName","getRandomElement","AVATAR_RANDOM_COLORS","e","_openBlock","_createBlock","_resolveDynamicComponent","$props","$options","_normalizeStyle","_ctx","_createElementVNode","_normalizeClass","$data","_createElementBlock","_renderSlot","_hoisted_3","_toDisplayString","_hoisted_4","_component_dt_presence","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"avatar.cjs","sources":["../../../components/avatar/avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n :style=\"avatarStyles\"\n :data-avatar-family=\"!iconOnly ? computedFamily : undefined\"\n :data-avatar-variant=\"!iconOnly ? computedVariant : undefined\"\n data-qa=\"dt-avatar\"\n :type=\"clickable ? 'button' : undefined\"\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 <div class=\"d-avatar__canvas-inner\">\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 <div\n v-else-if=\"isIconType\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n :aria-label=\"clickable ? iconAriaLabel : ''\"\n :data-qa=\"iconDataQa\"\n >\n <!-- @slot Slot for avatar icon. It will display if no imageSrc is provided -->\n <slot name=\"icon\" />\n </div>\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n </div>\n <div\n v-if=\"hasOverlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <!-- @slot Slot for overlay icon. -->\n <slot\n v-if=\"hasOverlayIcon\"\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 role=\"img\"\n :aria-label=\"`${group} participants`\"\n >{{ formattedGroup }}</span>\n <dt-presence\n v-if=\"presence && !showGroup && AVATAR_PRESENCE_SIZE_MODIFIERS[size]\"\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, hasSlotContent } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_FAMILY_COUNT,\n AVATAR_VARIANT_COUNT,\n colorToFamilyVariant,\n getRandomFamilyVariant,\n computeAvatarHex,\n} from './avatar_constants';\nimport { extractInitialsFromName } from './utils';\n\n// Check if browser supports oklch() - only compute hex fallback if not\nconst supportsOklch = typeof CSS !== 'undefined' && CSS.supports?.('background', 'oklch(0.5 0.1 0)');\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 compatConfig: { MODE: 3 },\n name: 'DtAvatar',\n components: { DtPresence },\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 * **Recommended.** Pass a unique identifier (e.g., user ID) to generate consistent,\n * deterministic colors for this avatar. The same seed always produces the same color.\n * This is the preferred approach for most use cases.\n */\n seed: {\n type: String,\n default: undefined,\n },\n\n /**\n * **Advanced.** Avatar color family (1-12). Each family represents a different hue\n * offset from the theme's anchor. Only use this if you need explicit control over\n * the color. For most cases, use `seed` instead.\n * Families: 1=Red, 2=Orange, 3=Amber, 4=Yellow-Green, 5=Green, 6=Teal, 7=Cyan,\n * 8=Blue, 9=Indigo, 10=Purple, 11=Magenta, 12=Pink\n * @values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\n */\n family: {\n type: Number,\n default: undefined,\n validator: (val) => val >= 1 && val <= AVATAR_FAMILY_COUNT,\n },\n\n /**\n * **Advanced.** Avatar color variant (0-9). Controls lightness/chroma within the family.\n * Only use this if you need explicit control over the color. For most cases, use `seed` instead.\n * 0 = darkest, 9 = lightest. Variants 0-5 have light text, 6-9 have dark text.\n * @values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n */\n variant: {\n type: Number,\n default: undefined,\n validator: (val) => val >= 0 && val < AVATAR_VARIANT_COUNT,\n },\n\n /**\n * Avatar color code for backward compatibility. Converted internally\n * to family/variant. For new code, use `seed` (recommended) or `family`/`variant`.\n * Format: family (1-12) * 100 + variant (0-9) * 10, e.g., '540' = family 5, variant 4.\n * @deprecated Use seed or family/variant instead.\n */\n color: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the avatar.\n * T-shirt sizes (xs, sm, md, lg, xl) are deprecated and will be removed in the next major version.\n * Please use the numeric scale instead.\n * @values 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 900\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (size) => Object.keys(AVATAR_SIZE_MODIFIERS).includes(String(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 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 * 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 * When true, renders the avatar with a transparent background and no color.\n * Useful for displaying icons that should not have a colored background,\n * such as channel or navigation icons.\n */\n iconOnly: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, renders the avatar in a desaturated/washed-out state.\n * Use this to indicate that a user is deactivated or inactive.\n */\n deactivated: {\n type: Boolean,\n default: false,\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 imageLoadedSuccessfully: null,\n formattedInitials: '',\n initializing: false,\n hasSlotContent,\n anchorHue: 0,\n };\n },\n\n computed: {\n hasOverlayIcon () {\n return hasSlotContent(this.$slots.overlayIcon);\n },\n\n isIconType () {\n return hasSlotContent(this.$slots.icon);\n },\n\n iconDataQa () {\n return 'dt-avatar-icon';\n },\n\n /**\n * Compute family from props, color prop, or random\n */\n computedFamily () {\n // Icon-type avatars don't use color\n if (this.isIconType) return undefined;\n\n // Explicit family prop takes precedence\n if (this.family !== undefined) return this.family;\n\n // Color prop (converted to family/variant)\n if (this.color !== undefined) {\n const parsed = colorToFamilyVariant(this.color);\n if (parsed) return parsed.family;\n }\n\n // Random based on seed\n const random = getRandomFamilyVariant(this.seed);\n return random.family;\n },\n\n /**\n * Compute variant from props, color prop, or random\n */\n computedVariant () {\n // Icon-type avatars don't use color\n if (this.isIconType) return undefined;\n\n // Explicit variant prop takes precedence\n if (this.variant !== undefined) return this.variant;\n\n // Color prop (converted to family/variant)\n if (this.color !== undefined) {\n const parsed = colorToFamilyVariant(this.color);\n if (parsed) return parsed.variant;\n }\n\n // Random based on seed\n const random = getRandomFamilyVariant(this.seed);\n return random.variant;\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n this.$attrs.class,\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n 'd-avatar--group-digits-2': this.showGroup && String(this.formattedGroup).length === 2,\n 'd-avatar--group-digits-3': this.showGroup && String(this.formattedGroup).length >= 3,\n 'd-avatar--clickable': this.clickable,\n 'd-avatar--presence': this.presence && !this.showGroup,\n 'd-avatar--icon-only': this.iconOnly,\n 'd-avatar--deactivated': this.deactivated,\n },\n ];\n },\n\n /**\n * Compute inline styles for fallback color in browsers that don't support oklch()\n */\n avatarStyles () {\n // $attrs.style can be object, string, or array — normalize to an array for merging\n const attrStyle = this.$attrs.style;\n const baseStyles = attrStyle != null ? [].concat(attrStyle) : [];\n\n // Only compute hex fallback for browsers that don't support oklch()\n if (!supportsOklch && !this.isIconType && this.computedFamily && this.computedVariant !== undefined) {\n const fallbackHex = computeAvatarHex(this.computedFamily, this.computedVariant, this.anchorHue);\n baseStyles.push({ '--avatar-color-background': fallbackHex });\n }\n\n return baseStyles.length > 0 ? baseStyles : undefined;\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n { 'd-avatar__overlay-icon': this.hasOverlayIcon },\n ];\n },\n\n showGroup () {\n return AVATAR_GROUP_VALIDATOR(this.group);\n },\n\n formattedGroup () {\n const size = String(this.validatedSize);\n // Sizes 100-250 cap at 2 digits — too small for 3\n const smallSizes = ['xs', '100', '150', '200', '250'];\n const maxDigits = smallSizes.includes(size) ? 2 : 3;\n if (maxDigits === 2) {\n return this.group > 9 ? '9+' : this.group;\n }\n return this.group > 99 ? '99+' : this.group;\n },\n\n validatedSize () {\n return 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 // Only read anchor hue for fallback computation in browsers without oklch() support\n if (!supportsOklch) {\n this.readAnchorHue();\n }\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 const size = String(this.validatedSize);\n\n // xs/100 are too small for initials\n if (size === 'xs' || size === '100') {\n this.formattedInitials = '';\n // sm/150/200 show single initial\n } else if (size === 'sm' || size === '150' || size === '200') {\n this.formattedInitials = initials[0];\n } else {\n this.formattedInitials = initials;\n }\n },\n\n /**\n * Read the anchor hue from CSS custom property for fallback computation\n */\n readAnchorHue () {\n try {\n const hueValue = getComputedStyle(document.documentElement)\n .getPropertyValue('--dt-avatar-anchor-hue')\n .trim();\n this.anchorHue = parseFloat(hueValue) || 0;\n } catch {\n this.anchorHue = 0;\n }\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"],"names":["supportsOklch","_a","_sfc_main","DtPresence","getUniqueString","val","AVATAR_FAMILY_COUNT","AVATAR_VARIANT_COUNT","size","AVATAR_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","state","group","AVATAR_GROUP_VALIDATOR","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","hasSlotContent","parsed","colorToFamilyVariant","getRandomFamilyVariant","attrStyle","baseStyles","fallbackHex","computeAvatarHex","newSrc","el","initials","extractInitialsFromName","hueValue","_hoisted_1","_openBlock","_createBlock","_resolveDynamicComponent","$props","$options","_createElementVNode","_normalizeClass","$data","_createElementBlock","_renderSlot","_ctx","_hoisted_4","_toDisplayString","_hoisted_5","_component_dt_presence","_mergeProps"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { getRandomElement as g, hasSlotContent as o, getUniqueString as y } from "../../common/utils/index.js";
2
- import { AVATAR_PRESENCE_STATES as u, AVATAR_GROUP_VALIDATOR as m, AVATAR_SIZE_MODIFIERS as d, AVATAR_ICON_SIZES as _, AVATAR_PRESENCE_SIZE_MODIFIERS as S, AVATAR_KIND_MODIFIERS as I, AVATAR_RANDOM_COLORS as A } from "./avatar-constants.js";
3
- import { ICON_SIZE_MODIFIERS as p } from "../icon/icon-constants.js";
4
- import { extractInitialsFromName as E } from "./utils.js";
5
- import { resolveComponent as C, openBlock as r, createBlock as h, resolveDynamicComponent as O, normalizeStyle as k, normalizeClass as l, withCtx as R, createElementVNode as b, createElementBlock as s, renderSlot as f, toDisplayString as c, createCommentVNode as n, mergeProps as T } from "vue";
6
- import { _ as D } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
7
- import N from "../presence/presence.js";
8
- const L = {
1
+ import { hasSlotContent as o, getUniqueString as A } from "../../common/utils/index.js";
2
+ import { AVATAR_PRESENCE_STATES as m, AVATAR_GROUP_VALIDATOR as h, computeAvatarHex as E, AVATAR_SIZE_MODIFIERS as c, getRandomFamilyVariant as f, AVATAR_PRESENCE_SIZE_MODIFIERS as b, AVATAR_KIND_MODIFIERS as C, AVATAR_VARIANT_COUNT as k, AVATAR_FAMILY_COUNT as O, colorToFamilyVariant as y } from "./avatar-constants.js";
3
+ import { extractInitialsFromName as T } from "./utils.js";
4
+ import { resolveComponent as R, openBlock as r, createBlock as v, resolveDynamicComponent as V, normalizeStyle as N, normalizeClass as l, withCtx as D, createElementVNode as g, createElementBlock as n, renderSlot as S, toDisplayString as u, createCommentVNode as d, mergeProps as L } from "vue";
5
+ import { _ as x } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
6
+ import z from "../presence/presence.js";
7
+ var p;
8
+ const _ = typeof CSS < "u" && ((p = CSS.supports) == null ? void 0 : p.call(CSS, "background", "oklch(0.5 0.1 0)")), F = {
9
9
  compatConfig: { MODE: 3 },
10
10
  name: "DtAvatar",
11
- components: { DtPresence: N },
11
+ components: { DtPresence: z },
12
12
  inheritAttrs: !1,
13
13
  props: {
14
14
  /**
@@ -17,33 +17,62 @@ const L = {
17
17
  id: {
18
18
  type: String,
19
19
  default() {
20
- return y();
20
+ return A();
21
21
  }
22
22
  },
23
23
  /**
24
- * Pass in a seed to get the random color generation based on that string. For example if you pass in a
25
- * user ID as the string it will return the same randomly generated colors every time for that user.
24
+ * **Recommended.** Pass a unique identifier (e.g., user ID) to generate consistent,
25
+ * deterministic colors for this avatar. The same seed always produces the same color.
26
+ * This is the preferred approach for most use cases.
26
27
  */
27
28
  seed: {
28
29
  type: String,
29
30
  default: void 0
30
31
  },
31
32
  /**
32
- * Set the avatar background to a specific color. If undefined will randomize the color which can be deterministic
33
- * if the seed prop is set.
33
+ * **Advanced.** Avatar color family (1-12). Each family represents a different hue
34
+ * offset from the theme's anchor. Only use this if you need explicit control over
35
+ * the color. For most cases, use `seed` instead.
36
+ * Families: 1=Red, 2=Orange, 3=Amber, 4=Yellow-Green, 5=Green, 6=Teal, 7=Cyan,
37
+ * 8=Blue, 9=Indigo, 10=Purple, 11=Magenta, 12=Pink
38
+ * @values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
39
+ */
40
+ family: {
41
+ type: Number,
42
+ default: void 0,
43
+ validator: (e) => e >= 1 && e <= O
44
+ },
45
+ /**
46
+ * **Advanced.** Avatar color variant (0-9). Controls lightness/chroma within the family.
47
+ * Only use this if you need explicit control over the color. For most cases, use `seed` instead.
48
+ * 0 = darkest, 9 = lightest. Variants 0-5 have light text, 6-9 have dark text.
49
+ * @values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
50
+ */
51
+ variant: {
52
+ type: Number,
53
+ default: void 0,
54
+ validator: (e) => e >= 0 && e < k
55
+ },
56
+ /**
57
+ * Avatar color code for backward compatibility. Converted internally
58
+ * to family/variant. For new code, use `seed` (recommended) or `family`/`variant`.
59
+ * Format: family (1-12) * 100 + variant (0-9) * 10, e.g., '540' = family 5, variant 4.
60
+ * @deprecated Use seed or family/variant instead.
34
61
  */
35
62
  color: {
36
63
  type: String,
37
64
  default: void 0
38
65
  },
39
66
  /**
40
- * The size of the avatar
41
- * @values xs, sm, md, lg, xl
67
+ * The size of the avatar.
68
+ * T-shirt sizes (xs, sm, md, lg, xl) are deprecated and will be removed in the next major version.
69
+ * Please use the numeric scale instead.
70
+ * @values 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 900
42
71
  */
43
72
  size: {
44
- type: String,
45
- default: "md",
46
- validator: (e) => Object.keys(d).includes(e)
73
+ type: [String, Number],
74
+ default: 300,
75
+ validator: (e) => Object.keys(c).includes(String(e))
47
76
  },
48
77
  /**
49
78
  * Used to customize the avatar container
@@ -74,8 +103,8 @@ const L = {
74
103
  */
75
104
  presence: {
76
105
  type: String,
77
- default: u.NONE,
78
- validator: (e) => Object.values(u).includes(e)
106
+ default: m.NONE,
107
+ validator: (e) => Object.values(m).includes(e)
79
108
  },
80
109
  /**
81
110
  * A set of props to be passed into the presence component.
@@ -86,13 +115,13 @@ const L = {
86
115
  },
87
116
  /**
88
117
  * Determines whether to show a group avatar.
89
- * Limit to 2 digits max, more than 99 will be rendered as 99+”.
118
+ * Limit to 2 digits max, more than 99 will be rendered as "99+".
90
119
  * if the number is 1 or less it would just show the regular avatar as if group had not been set.
91
120
  */
92
121
  group: {
93
122
  type: Number,
94
123
  default: void 0,
95
- validator: (e) => m(e)
124
+ validator: (e) => h(e)
96
125
  },
97
126
  /**
98
127
  * The text that overlays the avatar
@@ -124,15 +153,6 @@ const L = {
124
153
  type: String,
125
154
  default: void 0
126
155
  },
127
- /**
128
- * Icon size to be displayed on the avatar
129
- * @values 100, 200, 300, 400, 500, 600, 700, 800
130
- */
131
- iconSize: {
132
- type: String,
133
- default: "",
134
- validator: (e) => !e || Object.keys(p).includes(e)
135
- },
136
156
  /**
137
157
  * Full name used to extract initials.
138
158
  */
@@ -155,6 +175,23 @@ const L = {
155
175
  iconAriaLabel: {
156
176
  type: String,
157
177
  default: void 0
178
+ },
179
+ /**
180
+ * When true, renders the avatar with a transparent background and no color.
181
+ * Useful for displaying icons that should not have a colored background,
182
+ * such as channel or navigation icons.
183
+ */
184
+ iconOnly: {
185
+ type: Boolean,
186
+ default: !1
187
+ },
188
+ /**
189
+ * When true, renders the avatar in a desaturated/washed-out state.
190
+ * Use this to indicate that a user is deactivated or inactive.
191
+ */
192
+ deactivated: {
193
+ type: Boolean,
194
+ default: !1
158
195
  }
159
196
  },
160
197
  emits: [
@@ -168,39 +205,78 @@ const L = {
168
205
  ],
169
206
  data() {
170
207
  return {
171
- AVATAR_SIZE_MODIFIERS: d,
172
- AVATAR_KIND_MODIFIERS: I,
173
- AVATAR_PRESENCE_SIZE_MODIFIERS: S,
174
- AVATAR_ICON_SIZES: _,
208
+ AVATAR_SIZE_MODIFIERS: c,
209
+ AVATAR_KIND_MODIFIERS: C,
210
+ AVATAR_PRESENCE_SIZE_MODIFIERS: b,
175
211
  imageLoadedSuccessfully: null,
176
212
  formattedInitials: "",
177
213
  initializing: !1,
178
- hasSlotContent: o
214
+ hasSlotContent: o,
215
+ anchorHue: 0
179
216
  };
180
217
  },
181
218
  computed: {
182
219
  hasOverlayIcon() {
183
220
  return o(this.$slots.overlayIcon);
184
221
  },
222
+ isIconType() {
223
+ return o(this.$slots.icon);
224
+ },
185
225
  iconDataQa() {
186
226
  return "dt-avatar-icon";
187
227
  },
228
+ /**
229
+ * Compute family from props, color prop, or random
230
+ */
231
+ computedFamily() {
232
+ if (this.isIconType) return;
233
+ if (this.family !== void 0) return this.family;
234
+ if (this.color !== void 0) {
235
+ const t = y(this.color);
236
+ if (t) return t.family;
237
+ }
238
+ return f(this.seed).family;
239
+ },
240
+ /**
241
+ * Compute variant from props, color prop, or random
242
+ */
243
+ computedVariant() {
244
+ if (this.isIconType) return;
245
+ if (this.variant !== void 0) return this.variant;
246
+ if (this.color !== void 0) {
247
+ const t = y(this.color);
248
+ if (t) return t.variant;
249
+ }
250
+ return f(this.seed).variant;
251
+ },
188
252
  avatarClasses() {
189
253
  return [
190
254
  "d-avatar",
191
255
  this.$attrs.class,
192
- d[this.validatedSize],
256
+ c[this.validatedSize],
193
257
  this.avatarClass,
194
258
  {
195
259
  "d-avatar--group": this.showGroup,
196
- "d-avatar--group-digits-2": this.showGroup && this.group > 9 && this.group < 100,
197
- "d-avatar--group-digits-3": this.showGroup && this.group > 99,
198
- [`d-avatar--color-${this.getColor()}`]: !this.isIconType(),
260
+ "d-avatar--group-digits-2": this.showGroup && String(this.formattedGroup).length === 2,
261
+ "d-avatar--group-digits-3": this.showGroup && String(this.formattedGroup).length >= 3,
199
262
  "d-avatar--clickable": this.clickable,
200
- "d-avatar--presence": this.presence && !this.showGroup
263
+ "d-avatar--presence": this.presence && !this.showGroup,
264
+ "d-avatar--icon-only": this.iconOnly,
265
+ "d-avatar--deactivated": this.deactivated
201
266
  }
202
267
  ];
203
268
  },
269
+ /**
270
+ * Compute inline styles for fallback color in browsers that don't support oklch()
271
+ */
272
+ avatarStyles() {
273
+ const e = this.$attrs.style, t = e != null ? [].concat(e) : [];
274
+ if (!_ && !this.isIconType && this.computedFamily && this.computedVariant !== void 0) {
275
+ const a = E(this.computedFamily, this.computedVariant, this.anchorHue);
276
+ t.push({ "--avatar-color-background": a });
277
+ }
278
+ return t.length > 0 ? t : void 0;
279
+ },
204
280
  overlayClasses() {
205
281
  return [
206
282
  "d-avatar__overlay",
@@ -209,13 +285,14 @@ const L = {
209
285
  ];
210
286
  },
211
287
  showGroup() {
212
- return m(this.group);
288
+ return h(this.group);
213
289
  },
214
290
  formattedGroup() {
215
- return this.group > 99 ? "99+" : this.group;
291
+ const e = String(this.validatedSize);
292
+ return (["xs", "100", "150", "200", "250"].includes(e) ? 2 : 3) === 2 ? this.group > 9 ? "9+" : this.group : this.group > 99 ? "99+" : this.group;
216
293
  },
217
294
  validatedSize() {
218
- return this.group ? "xs" : this.size;
295
+ return this.size;
219
296
  },
220
297
  showImage() {
221
298
  return this.imageLoadedSuccessfully !== !1 && this.imageSrc;
@@ -245,23 +322,28 @@ const L = {
245
322
  }
246
323
  },
247
324
  mounted() {
248
- this.validateProps(), this.setImageListeners();
325
+ this.validateProps(), this.setImageListeners(), _ || this.readAnchorHue();
249
326
  },
250
327
  methods: {
251
- isIconType() {
252
- return o(this.$slots.icon);
253
- },
254
328
  async setImageListeners() {
255
329
  await this.$nextTick();
256
330
  const e = this.$refs.avatarImage;
257
331
  e && (e.addEventListener("load", () => this._loadedImageEventHandler(e), { once: !0 }), e.addEventListener("error", () => this._erroredImageEventHandler(e), { once: !0 }));
258
332
  },
259
333
  formatInitials() {
260
- const e = E(this.fullName);
261
- this.validatedSize === "xs" ? this.formattedInitials = "" : this.validatedSize === "sm" ? this.formattedInitials = e[0] : this.formattedInitials = e;
334
+ const e = T(this.fullName), t = String(this.validatedSize);
335
+ t === "xs" || t === "100" ? this.formattedInitials = "" : t === "sm" || t === "150" || t === "200" ? this.formattedInitials = e[0] : this.formattedInitials = e;
262
336
  },
263
- getColor() {
264
- return this.color ?? g(A, this.seed);
337
+ /**
338
+ * Read the anchor hue from CSS custom property for fallback computation
339
+ */
340
+ readAnchorHue() {
341
+ try {
342
+ const e = getComputedStyle(document.documentElement).getPropertyValue("--dt-avatar-anchor-hue").trim();
343
+ this.anchorHue = parseFloat(e) || 0;
344
+ } catch {
345
+ this.anchorHue = 0;
346
+ }
265
347
  },
266
348
  _loadedImageEventHandler(e) {
267
349
  this.imageLoadedSuccessfully = !0, e.classList.remove("d-d-none");
@@ -276,75 +358,79 @@ const L = {
276
358
  this.clickable && this.$emit("click", e);
277
359
  }
278
360
  }
279
- }, z = ["src", "alt"], V = ["aria-label", "data-qa", "role"], w = {
361
+ }, P = { class: "d-avatar__canvas-inner" }, w = ["src", "alt"], G = ["aria-label", "data-qa"], H = {
280
362
  key: 1,
281
363
  class: "d-avatar__overlay-text"
282
- }, x = {
283
- key: 1,
284
- class: "d-avatar__count",
285
- "data-qa": "dt-avatar-count"
286
- };
287
- function P(e, G, a, M, i, t) {
288
- const v = C("dt-presence");
289
- return r(), h(O(a.clickable ? "button" : "div"), {
364
+ }, M = ["aria-label"];
365
+ function q(e, t, a, j, s, i) {
366
+ const I = R("dt-presence");
367
+ return r(), v(V(a.clickable ? "button" : "div"), {
290
368
  id: a.id,
291
- class: l(t.avatarClasses),
292
- style: k(e.$attrs.style),
369
+ class: l(i.avatarClasses),
370
+ style: N(i.avatarStyles),
371
+ "data-avatar-family": a.iconOnly ? void 0 : i.computedFamily,
372
+ "data-avatar-variant": a.iconOnly ? void 0 : i.computedVariant,
293
373
  "data-qa": "dt-avatar",
294
- onClick: t.handleClick
374
+ type: a.clickable ? "button" : void 0,
375
+ onClick: i.handleClick
295
376
  }, {
296
- default: R(() => [
297
- b("div", {
377
+ default: D(() => [
378
+ g("div", {
298
379
  ref: "canvas",
299
380
  class: l([
300
381
  a.canvasClass,
301
382
  "d-avatar__canvas",
302
- { "d-avatar--image-loaded": i.imageLoadedSuccessfully }
383
+ { "d-avatar--image-loaded": s.imageLoadedSuccessfully }
303
384
  ])
304
385
  }, [
305
- t.showImage ? (r(), s("img", {
306
- key: 0,
307
- ref: "avatarImage",
308
- class: "d-avatar__image",
309
- "data-qa": "dt-avatar-image",
310
- src: a.imageSrc,
311
- alt: a.imageAlt
312
- }, null, 8, z)) : t.isIconType() ? (r(), s("div", {
313
- key: 1,
314
- class: l([a.iconClass, i.AVATAR_KIND_MODIFIERS.icon]),
315
- "aria-label": a.clickable ? a.iconAriaLabel : "",
316
- "data-qa": t.iconDataQa,
317
- role: a.clickable ? "button" : ""
318
- }, [
319
- f(e.$slots, "icon", {
320
- iconSize: a.iconSize || i.AVATAR_ICON_SIZES[a.size]
321
- })
322
- ], 10, V)) : (r(), s("span", {
323
- key: 2,
324
- class: l([i.AVATAR_KIND_MODIFIERS.initials])
325
- }, c(i.formattedInitials), 3))
386
+ g("div", P, [
387
+ i.showImage ? (r(), n("img", {
388
+ key: 0,
389
+ ref: "avatarImage",
390
+ class: "d-avatar__image",
391
+ "data-qa": "dt-avatar-image",
392
+ src: a.imageSrc,
393
+ alt: a.imageAlt
394
+ }, null, 8, w)) : i.isIconType ? (r(), n("div", {
395
+ key: 1,
396
+ class: l([a.iconClass, s.AVATAR_KIND_MODIFIERS.icon]),
397
+ "aria-label": a.clickable ? a.iconAriaLabel : "",
398
+ "data-qa": i.iconDataQa
399
+ }, [
400
+ S(e.$slots, "icon")
401
+ ], 10, G)) : (r(), n("span", {
402
+ key: 2,
403
+ class: l([s.AVATAR_KIND_MODIFIERS.initials])
404
+ }, u(s.formattedInitials), 3))
405
+ ])
326
406
  ], 2),
327
- t.hasOverlayIcon || a.overlayText ? (r(), s("div", {
407
+ i.hasOverlayIcon || a.overlayText ? (r(), n("div", {
328
408
  key: 0,
329
- class: l(t.overlayClasses)
409
+ class: l(i.overlayClasses)
330
410
  }, [
331
- t.hasOverlayIcon ? f(e.$slots, "overlayIcon", { key: 0 }) : a.overlayText ? (r(), s("p", w, c(a.overlayText), 1)) : n("", !0)
332
- ], 2)) : n("", !0),
333
- t.showGroup ? (r(), s("span", x, c(t.formattedGroup), 1)) : n("", !0),
334
- a.presence && !t.showGroup ? (r(), h(v, T({
411
+ i.hasOverlayIcon ? S(e.$slots, "overlayIcon", { key: 0 }) : a.overlayText ? (r(), n("p", H, u(a.overlayText), 1)) : d("", !0)
412
+ ], 2)) : d("", !0),
413
+ i.showGroup ? (r(), n("span", {
414
+ key: 1,
415
+ class: "d-avatar__count",
416
+ "data-qa": "dt-avatar-count",
417
+ role: "img",
418
+ "aria-label": `${a.group} participants`
419
+ }, u(i.formattedGroup), 9, M)) : d("", !0),
420
+ a.presence && !i.showGroup && s.AVATAR_PRESENCE_SIZE_MODIFIERS[a.size] ? (r(), v(I, L({
335
421
  key: 2,
336
422
  presence: a.presence,
337
423
  class: [
338
424
  "d-avatar__presence",
339
- i.AVATAR_PRESENCE_SIZE_MODIFIERS[a.size]
425
+ s.AVATAR_PRESENCE_SIZE_MODIFIERS[a.size]
340
426
  ]
341
- }, a.presenceProps, { "data-qa": "dt-presence" }), null, 16, ["presence", "class"])) : n("", !0)
427
+ }, a.presenceProps, { "data-qa": "dt-presence" }), null, 16, ["presence", "class"])) : d("", !0)
342
428
  ]),
343
429
  _: 3
344
- }, 8, ["id", "class", "style", "onClick"]);
430
+ }, 8, ["id", "class", "style", "data-avatar-family", "data-avatar-variant", "type", "onClick"]);
345
431
  }
346
- const Q = /* @__PURE__ */ D(L, [["render", P]]);
432
+ const J = /* @__PURE__ */ x(F, [["render", q]]);
347
433
  export {
348
- Q as default
434
+ J as default
349
435
  };
350
436
  //# sourceMappingURL=avatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sources":["../../../components/avatar/avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n :style=\"$attrs.style\"\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 <div\n v-else-if=\"isIconType()\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n :aria-label=\"clickable ? iconAriaLabel : ''\"\n :data-qa=\"iconDataQa\"\n :role=\"clickable ? 'button' : ''\"\n >\n <!-- @slot Slot for avatar icon. It will display if no imageSrc is provided -->\n <slot\n name=\"icon\"\n :icon-size=\"iconSize || AVATAR_ICON_SIZES[size]\"\n />\n </div>\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n <div\n v-if=\"hasOverlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <!-- @slot Slot for overlay icon. -->\n <slot\n v-if=\"hasOverlayIcon\"\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, hasSlotContent } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_RANDOM_COLORS,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_ICON_SIZES,\n} from './avatar_constants';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\nimport { extractInitialsFromName } from './utils';\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 compatConfig: { MODE: 3 },\n name: 'DtAvatar',\n components: { DtPresence },\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 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 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 hasSlotContent,\n };\n },\n\n computed: {\n hasOverlayIcon () {\n return hasSlotContent(this.$slots.overlayIcon);\n },\n\n iconDataQa () {\n return 'dt-avatar-icon';\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n this.$attrs.class,\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n 'd-avatar--group-digits-2': this.showGroup && this.group > 9 && this.group < 100,\n 'd-avatar--group-digits-3': this.showGroup && this.group > 99,\n [`d-avatar--color-${this.getColor()}`]: !this.isIconType(),\n 'd-avatar--clickable': this.clickable,\n 'd-avatar--presence': this.presence && !this.showGroup,\n },\n ];\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n { 'd-avatar__overlay-icon': this.hasOverlayIcon },\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 isIconType () {\n return hasSlotContent(this.$slots.icon);\n },\n\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_RANDOM_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"],"names":["_sfc_main","DtPresence","getUniqueString","size","AVATAR_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","state","group","AVATAR_GROUP_VALIDATOR","ICON_SIZE_MODIFIERS","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","AVATAR_ICON_SIZES","hasSlotContent","newSrc","el","initials","extractInitialsFromName","getRandomElement","AVATAR_RANDOM_COLORS","_openBlock","_createBlock","_resolveDynamicComponent","$props","$options","_normalizeStyle","_ctx","_createElementVNode","_normalizeClass","$data","_createElementBlock","_renderSlot","_hoisted_3","_toDisplayString","_hoisted_4","_component_dt_presence","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"avatar.js","sources":["../../../components/avatar/avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n :style=\"avatarStyles\"\n :data-avatar-family=\"!iconOnly ? computedFamily : undefined\"\n :data-avatar-variant=\"!iconOnly ? computedVariant : undefined\"\n data-qa=\"dt-avatar\"\n :type=\"clickable ? 'button' : undefined\"\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 <div class=\"d-avatar__canvas-inner\">\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 <div\n v-else-if=\"isIconType\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n :aria-label=\"clickable ? iconAriaLabel : ''\"\n :data-qa=\"iconDataQa\"\n >\n <!-- @slot Slot for avatar icon. It will display if no imageSrc is provided -->\n <slot name=\"icon\" />\n </div>\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n </div>\n <div\n v-if=\"hasOverlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <!-- @slot Slot for overlay icon. -->\n <slot\n v-if=\"hasOverlayIcon\"\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 role=\"img\"\n :aria-label=\"`${group} participants`\"\n >{{ formattedGroup }}</span>\n <dt-presence\n v-if=\"presence && !showGroup && AVATAR_PRESENCE_SIZE_MODIFIERS[size]\"\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, hasSlotContent } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_FAMILY_COUNT,\n AVATAR_VARIANT_COUNT,\n colorToFamilyVariant,\n getRandomFamilyVariant,\n computeAvatarHex,\n} from './avatar_constants';\nimport { extractInitialsFromName } from './utils';\n\n// Check if browser supports oklch() - only compute hex fallback if not\nconst supportsOklch = typeof CSS !== 'undefined' && CSS.supports?.('background', 'oklch(0.5 0.1 0)');\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 compatConfig: { MODE: 3 },\n name: 'DtAvatar',\n components: { DtPresence },\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 * **Recommended.** Pass a unique identifier (e.g., user ID) to generate consistent,\n * deterministic colors for this avatar. The same seed always produces the same color.\n * This is the preferred approach for most use cases.\n */\n seed: {\n type: String,\n default: undefined,\n },\n\n /**\n * **Advanced.** Avatar color family (1-12). Each family represents a different hue\n * offset from the theme's anchor. Only use this if you need explicit control over\n * the color. For most cases, use `seed` instead.\n * Families: 1=Red, 2=Orange, 3=Amber, 4=Yellow-Green, 5=Green, 6=Teal, 7=Cyan,\n * 8=Blue, 9=Indigo, 10=Purple, 11=Magenta, 12=Pink\n * @values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\n */\n family: {\n type: Number,\n default: undefined,\n validator: (val) => val >= 1 && val <= AVATAR_FAMILY_COUNT,\n },\n\n /**\n * **Advanced.** Avatar color variant (0-9). Controls lightness/chroma within the family.\n * Only use this if you need explicit control over the color. For most cases, use `seed` instead.\n * 0 = darkest, 9 = lightest. Variants 0-5 have light text, 6-9 have dark text.\n * @values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n */\n variant: {\n type: Number,\n default: undefined,\n validator: (val) => val >= 0 && val < AVATAR_VARIANT_COUNT,\n },\n\n /**\n * Avatar color code for backward compatibility. Converted internally\n * to family/variant. For new code, use `seed` (recommended) or `family`/`variant`.\n * Format: family (1-12) * 100 + variant (0-9) * 10, e.g., '540' = family 5, variant 4.\n * @deprecated Use seed or family/variant instead.\n */\n color: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the avatar.\n * T-shirt sizes (xs, sm, md, lg, xl) are deprecated and will be removed in the next major version.\n * Please use the numeric scale instead.\n * @values 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 900\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (size) => Object.keys(AVATAR_SIZE_MODIFIERS).includes(String(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 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 * 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 * When true, renders the avatar with a transparent background and no color.\n * Useful for displaying icons that should not have a colored background,\n * such as channel or navigation icons.\n */\n iconOnly: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, renders the avatar in a desaturated/washed-out state.\n * Use this to indicate that a user is deactivated or inactive.\n */\n deactivated: {\n type: Boolean,\n default: false,\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 imageLoadedSuccessfully: null,\n formattedInitials: '',\n initializing: false,\n hasSlotContent,\n anchorHue: 0,\n };\n },\n\n computed: {\n hasOverlayIcon () {\n return hasSlotContent(this.$slots.overlayIcon);\n },\n\n isIconType () {\n return hasSlotContent(this.$slots.icon);\n },\n\n iconDataQa () {\n return 'dt-avatar-icon';\n },\n\n /**\n * Compute family from props, color prop, or random\n */\n computedFamily () {\n // Icon-type avatars don't use color\n if (this.isIconType) return undefined;\n\n // Explicit family prop takes precedence\n if (this.family !== undefined) return this.family;\n\n // Color prop (converted to family/variant)\n if (this.color !== undefined) {\n const parsed = colorToFamilyVariant(this.color);\n if (parsed) return parsed.family;\n }\n\n // Random based on seed\n const random = getRandomFamilyVariant(this.seed);\n return random.family;\n },\n\n /**\n * Compute variant from props, color prop, or random\n */\n computedVariant () {\n // Icon-type avatars don't use color\n if (this.isIconType) return undefined;\n\n // Explicit variant prop takes precedence\n if (this.variant !== undefined) return this.variant;\n\n // Color prop (converted to family/variant)\n if (this.color !== undefined) {\n const parsed = colorToFamilyVariant(this.color);\n if (parsed) return parsed.variant;\n }\n\n // Random based on seed\n const random = getRandomFamilyVariant(this.seed);\n return random.variant;\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n this.$attrs.class,\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n 'd-avatar--group-digits-2': this.showGroup && String(this.formattedGroup).length === 2,\n 'd-avatar--group-digits-3': this.showGroup && String(this.formattedGroup).length >= 3,\n 'd-avatar--clickable': this.clickable,\n 'd-avatar--presence': this.presence && !this.showGroup,\n 'd-avatar--icon-only': this.iconOnly,\n 'd-avatar--deactivated': this.deactivated,\n },\n ];\n },\n\n /**\n * Compute inline styles for fallback color in browsers that don't support oklch()\n */\n avatarStyles () {\n // $attrs.style can be object, string, or array — normalize to an array for merging\n const attrStyle = this.$attrs.style;\n const baseStyles = attrStyle != null ? [].concat(attrStyle) : [];\n\n // Only compute hex fallback for browsers that don't support oklch()\n if (!supportsOklch && !this.isIconType && this.computedFamily && this.computedVariant !== undefined) {\n const fallbackHex = computeAvatarHex(this.computedFamily, this.computedVariant, this.anchorHue);\n baseStyles.push({ '--avatar-color-background': fallbackHex });\n }\n\n return baseStyles.length > 0 ? baseStyles : undefined;\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n { 'd-avatar__overlay-icon': this.hasOverlayIcon },\n ];\n },\n\n showGroup () {\n return AVATAR_GROUP_VALIDATOR(this.group);\n },\n\n formattedGroup () {\n const size = String(this.validatedSize);\n // Sizes 100-250 cap at 2 digits — too small for 3\n const smallSizes = ['xs', '100', '150', '200', '250'];\n const maxDigits = smallSizes.includes(size) ? 2 : 3;\n if (maxDigits === 2) {\n return this.group > 9 ? '9+' : this.group;\n }\n return this.group > 99 ? '99+' : this.group;\n },\n\n validatedSize () {\n return 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 // Only read anchor hue for fallback computation in browsers without oklch() support\n if (!supportsOklch) {\n this.readAnchorHue();\n }\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 const size = String(this.validatedSize);\n\n // xs/100 are too small for initials\n if (size === 'xs' || size === '100') {\n this.formattedInitials = '';\n // sm/150/200 show single initial\n } else if (size === 'sm' || size === '150' || size === '200') {\n this.formattedInitials = initials[0];\n } else {\n this.formattedInitials = initials;\n }\n },\n\n /**\n * Read the anchor hue from CSS custom property for fallback computation\n */\n readAnchorHue () {\n try {\n const hueValue = getComputedStyle(document.documentElement)\n .getPropertyValue('--dt-avatar-anchor-hue')\n .trim();\n this.anchorHue = parseFloat(hueValue) || 0;\n } catch {\n this.anchorHue = 0;\n }\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"],"names":["supportsOklch","_a","_sfc_main","DtPresence","getUniqueString","val","AVATAR_FAMILY_COUNT","AVATAR_VARIANT_COUNT","size","AVATAR_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","state","group","AVATAR_GROUP_VALIDATOR","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","hasSlotContent","parsed","colorToFamilyVariant","getRandomFamilyVariant","attrStyle","baseStyles","fallbackHex","computeAvatarHex","newSrc","el","initials","extractInitialsFromName","hueValue","_hoisted_1","_openBlock","_createBlock","_resolveDynamicComponent","$props","$options","_createElementVNode","_normalizeClass","$data","_createElementBlock","_renderSlot","_ctx","_hoisted_4","_toDisplayString","_hoisted_5","_component_dt_presence","_mergeProps"],"mappings":"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"}