@dialpad/dialtone 9.27.1 → 9.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/README.md +19 -3
  2. package/dist/css/dialtone.css +2 -2
  3. package/dist/tokens/css/variables-cox-dark.css +936 -0
  4. package/dist/tokens/css/variables-cox-light.css +816 -0
  5. package/dist/tokens/css/variables-dark.css +936 -0
  6. package/dist/tokens/css/variables-light.css +816 -0
  7. package/dist/tokens/css/variables-tmo-dark.css +936 -0
  8. package/dist/tokens/css/variables-tmo-light.css +816 -0
  9. package/dist/tokens/doc.json +86736 -0
  10. package/dist/tokens/less/variables-cox-dark.less +933 -0
  11. package/dist/tokens/less/variables-cox-light.less +813 -0
  12. package/dist/tokens/less/variables-dark.less +933 -0
  13. package/dist/tokens/less/variables-light.less +813 -0
  14. package/dist/tokens/less/variables-tmo-dark.less +933 -0
  15. package/dist/tokens/less/variables-tmo-light.less +813 -0
  16. package/dist/tokens/tokens-dark.json +928 -0
  17. package/dist/tokens/tokens-light.json +808 -0
  18. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js +2 -0
  19. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js.map +1 -0
  20. package/dist/vue2/chunks/dropdown-zhMEz3bn.js +2 -0
  21. package/dist/vue2/chunks/dropdown-zhMEz3bn.js.map +1 -0
  22. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js +2 -0
  23. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js.map +1 -0
  24. package/dist/vue2/chunks/icon_constants-2S_OSQ1t.js +2 -0
  25. package/dist/vue2/chunks/icon_constants-2S_OSQ1t.js.map +1 -0
  26. package/dist/vue2/chunks/index-2jPosQBn.js +3 -0
  27. package/dist/vue2/chunks/index-2jPosQBn.js.map +1 -0
  28. package/dist/vue2/chunks/{index-o4OMWMuv.js → index-YkSDT8-g.js} +2 -2
  29. package/dist/vue2/chunks/{index-o4OMWMuv.js.map → index-YkSDT8-g.js.map} +1 -1
  30. package/dist/vue2/chunks/index-sdfB7Aok.js +2 -0
  31. package/dist/vue2/chunks/index-sdfB7Aok.js.map +1 -0
  32. package/dist/vue2/chunks/input-o-fc1X4b.js +2 -0
  33. package/dist/vue2/chunks/input-o-fc1X4b.js.map +1 -0
  34. package/dist/vue2/chunks/input_group-j2gTtc1C.js +2 -0
  35. package/dist/vue2/chunks/input_group-j2gTtc1C.js.map +1 -0
  36. package/dist/vue2/chunks/keyboard_list_navigation-N74Bpdq7.js +2 -0
  37. package/dist/vue2/chunks/keyboard_list_navigation-N74Bpdq7.js.map +1 -0
  38. package/dist/vue2/chunks/link_constants-Kn6kP4i1.js +2 -0
  39. package/dist/vue2/chunks/link_constants-Kn6kP4i1.js.map +1 -0
  40. package/dist/vue2/chunks/list_item_constants-Tsz5CO1m.js +2 -0
  41. package/dist/vue2/chunks/list_item_constants-Tsz5CO1m.js.map +1 -0
  42. package/dist/vue2/chunks/modal-qEzlo0Sj.js +2 -0
  43. package/dist/vue2/chunks/modal-qEzlo0Sj.js.map +1 -0
  44. package/dist/vue2/chunks/notice_action-u3ZKIhit.js +2 -0
  45. package/dist/vue2/chunks/notice_action-u3ZKIhit.js.map +1 -0
  46. package/dist/vue2/chunks/notice_constants-mC6al2Dm.js +2 -0
  47. package/dist/vue2/chunks/notice_constants-mC6al2Dm.js.map +1 -0
  48. package/dist/vue2/chunks/popover_constants-hOEhklvr.js +2 -0
  49. package/dist/vue2/chunks/popover_constants-hOEhklvr.js.map +1 -0
  50. package/dist/vue2/chunks/sr_only_close_button-ErijKGYR.js +3 -0
  51. package/dist/vue2/chunks/sr_only_close_button-ErijKGYR.js.map +1 -0
  52. package/dist/vue2/chunks/stack_constants-m9Ickqw0.js +2 -0
  53. package/dist/vue2/chunks/stack_constants-m9Ickqw0.js.map +1 -0
  54. package/dist/vue2/chunks/tab-7hJQSLFx.js +2 -0
  55. package/dist/vue2/chunks/tab-7hJQSLFx.js.map +1 -0
  56. package/dist/vue2/component-documentation.json +1 -1
  57. package/dist/vue2/dialtone-vue.cjs +2 -0
  58. package/dist/vue2/dialtone-vue.cjs.map +1 -0
  59. package/dist/vue2/dialtone-vue.js +1 -1
  60. package/dist/vue2/lib/attachment-carousel.cjs +2 -0
  61. package/dist/vue2/lib/attachment-carousel.cjs.map +1 -0
  62. package/dist/vue2/lib/attachment-carousel.js +2 -3
  63. package/dist/vue2/lib/attachment-carousel.js.map +1 -1
  64. package/dist/vue2/lib/avatar.cjs +2 -0
  65. package/dist/vue2/lib/avatar.cjs.map +1 -0
  66. package/dist/vue2/lib/avatar.js +2 -3
  67. package/dist/vue2/lib/avatar.js.map +1 -1
  68. package/dist/vue2/lib/badge.cjs +2 -0
  69. package/dist/vue2/lib/badge.cjs.map +1 -0
  70. package/dist/vue2/lib/badge.js +2 -3
  71. package/dist/vue2/lib/badge.js.map +1 -1
  72. package/dist/vue2/lib/banner.cjs +3 -0
  73. package/dist/vue2/lib/banner.cjs.map +1 -0
  74. package/dist/vue2/lib/banner.js +2 -3
  75. package/dist/vue2/lib/banner.js.map +1 -1
  76. package/dist/vue2/lib/breadcrumbs.cjs +2 -0
  77. package/dist/vue2/lib/breadcrumbs.cjs.map +1 -0
  78. package/dist/vue2/lib/button-group.cjs +2 -0
  79. package/dist/vue2/lib/button-group.cjs.map +1 -0
  80. package/dist/vue2/lib/button.cjs +2 -0
  81. package/dist/vue2/lib/button.cjs.map +1 -0
  82. package/dist/vue2/lib/callbar-button-with-popover.cjs +2 -0
  83. package/dist/vue2/lib/callbar-button-with-popover.cjs.map +1 -0
  84. package/dist/vue2/lib/callbar-button-with-popover.js +2 -3
  85. package/dist/vue2/lib/callbar-button-with-popover.js.map +1 -1
  86. package/dist/vue2/lib/callbar-button.cjs +2 -0
  87. package/dist/vue2/lib/callbar-button.cjs.map +1 -0
  88. package/dist/vue2/lib/callbox.cjs +2 -0
  89. package/dist/vue2/lib/callbox.cjs.map +1 -0
  90. package/dist/vue2/lib/callbox.js +2 -3
  91. package/dist/vue2/lib/callbox.js.map +1 -1
  92. package/dist/vue2/lib/card.cjs +2 -0
  93. package/dist/vue2/lib/card.cjs.map +1 -0
  94. package/dist/vue2/lib/checkbox-group.cjs +2 -0
  95. package/dist/vue2/lib/checkbox-group.cjs.map +1 -0
  96. package/dist/vue2/lib/checkbox.cjs +2 -0
  97. package/dist/vue2/lib/checkbox.cjs.map +1 -0
  98. package/dist/vue2/lib/chip.cjs +2 -0
  99. package/dist/vue2/lib/chip.cjs.map +1 -0
  100. package/dist/vue2/lib/chip.js +2 -3
  101. package/dist/vue2/lib/chip.js.map +1 -1
  102. package/dist/vue2/lib/codeblock.cjs +3 -0
  103. package/dist/vue2/lib/codeblock.cjs.map +1 -0
  104. package/dist/vue2/lib/collapsible.cjs +2 -0
  105. package/dist/vue2/lib/collapsible.cjs.map +1 -0
  106. package/dist/vue2/lib/collapsible.js +2 -3
  107. package/dist/vue2/lib/collapsible.js.map +1 -1
  108. package/dist/vue2/lib/combobox-multi-select.cjs +2 -0
  109. package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -0
  110. package/dist/vue2/lib/combobox-with-popover.cjs +2 -0
  111. package/dist/vue2/lib/combobox-with-popover.cjs.map +1 -0
  112. package/dist/vue2/lib/combobox-with-popover.js +1 -1
  113. package/dist/vue2/lib/combobox.cjs +2 -0
  114. package/dist/vue2/lib/combobox.cjs.map +1 -0
  115. package/dist/vue2/lib/constants.cjs +2 -0
  116. package/dist/vue2/lib/constants.cjs.map +1 -0
  117. package/dist/vue2/lib/contact-info.cjs +2 -0
  118. package/dist/vue2/lib/contact-info.cjs.map +1 -0
  119. package/dist/vue2/lib/contact-info.js +2 -3
  120. package/dist/vue2/lib/contact-info.js.map +1 -1
  121. package/dist/vue2/lib/contact-row.cjs +2 -0
  122. package/dist/vue2/lib/contact-row.cjs.map +1 -0
  123. package/dist/vue2/lib/contact-row.js +1 -1
  124. package/dist/vue2/lib/datepicker.cjs +2 -0
  125. package/dist/vue2/lib/datepicker.cjs.map +1 -0
  126. package/dist/vue2/lib/datepicker.js +12 -13
  127. package/dist/vue2/lib/datepicker.js.map +1 -1
  128. package/dist/vue2/lib/dates.cjs +2 -0
  129. package/dist/vue2/lib/dates.cjs.map +1 -0
  130. package/dist/vue2/lib/description-list.cjs +2 -0
  131. package/dist/vue2/lib/description-list.cjs.map +1 -0
  132. package/dist/vue2/lib/dropdown.cjs +2 -0
  133. package/dist/vue2/lib/dropdown.cjs.map +1 -0
  134. package/dist/vue2/lib/dropdown.js +6 -7
  135. package/dist/vue2/lib/dropdown.js.map +1 -1
  136. package/dist/vue2/lib/editor.cjs +2 -0
  137. package/dist/vue2/lib/editor.cjs.map +1 -0
  138. package/dist/vue2/lib/editor.js +1 -1
  139. package/dist/vue2/lib/emoji-picker.cjs +2 -0
  140. package/dist/vue2/lib/emoji-picker.cjs.map +1 -0
  141. package/dist/vue2/lib/emoji-picker.js +2 -3
  142. package/dist/vue2/lib/emoji-picker.js.map +1 -1
  143. package/dist/vue2/lib/emoji-row.cjs +2 -0
  144. package/dist/vue2/lib/emoji-row.cjs.map +1 -0
  145. package/dist/vue2/lib/emoji-row.js +1 -1
  146. package/dist/vue2/lib/emoji-text-wrapper.cjs +2 -0
  147. package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -0
  148. package/dist/vue2/lib/emoji-text-wrapper.js +1 -1
  149. package/dist/vue2/lib/emoji.cjs +2 -0
  150. package/dist/vue2/lib/emoji.cjs.map +1 -0
  151. package/dist/vue2/lib/emoji.js +1 -1
  152. package/dist/vue2/lib/feed-item-row.cjs +2 -0
  153. package/dist/vue2/lib/feed-item-row.cjs.map +1 -0
  154. package/dist/vue2/lib/feed-item-row.js +2 -3
  155. package/dist/vue2/lib/feed-item-row.js.map +1 -1
  156. package/dist/vue2/lib/feed-pill.cjs +2 -0
  157. package/dist/vue2/lib/feed-pill.cjs.map +1 -0
  158. package/dist/vue2/lib/feed-pill.js +2 -3
  159. package/dist/vue2/lib/feed-pill.js.map +1 -1
  160. package/dist/vue2/lib/general-row.cjs +2 -0
  161. package/dist/vue2/lib/general-row.cjs.map +1 -0
  162. package/dist/vue2/lib/general-row.js +1 -1
  163. package/dist/vue2/lib/group-row.cjs +2 -0
  164. package/dist/vue2/lib/group-row.cjs.map +1 -0
  165. package/dist/vue2/lib/group-row.js +2 -2
  166. package/dist/vue2/lib/grouped-chip.cjs +2 -0
  167. package/dist/vue2/lib/grouped-chip.cjs.map +1 -0
  168. package/dist/vue2/lib/grouped-chip.js +6 -7
  169. package/dist/vue2/lib/grouped-chip.js.map +1 -1
  170. package/dist/vue2/lib/hovercard.cjs +2 -0
  171. package/dist/vue2/lib/hovercard.cjs.map +1 -0
  172. package/dist/vue2/lib/hovercard.js +6 -7
  173. package/dist/vue2/lib/hovercard.js.map +1 -1
  174. package/dist/vue2/lib/icon.cjs +2 -0
  175. package/dist/vue2/lib/icon.cjs.map +1 -0
  176. package/dist/vue2/lib/icon.js +14 -38
  177. package/dist/vue2/lib/icon.js.map +1 -1
  178. package/dist/vue2/lib/image-viewer.cjs +2 -0
  179. package/dist/vue2/lib/image-viewer.cjs.map +1 -0
  180. package/dist/vue2/lib/image-viewer.js +11 -12
  181. package/dist/vue2/lib/image-viewer.js.map +1 -1
  182. package/dist/vue2/lib/input-group.cjs +2 -0
  183. package/dist/vue2/lib/input-group.cjs.map +1 -0
  184. package/dist/vue2/lib/input.cjs +2 -0
  185. package/dist/vue2/lib/input.cjs.map +1 -0
  186. package/dist/vue2/lib/item-layout.cjs +2 -0
  187. package/dist/vue2/lib/item-layout.cjs.map +1 -0
  188. package/dist/vue2/lib/ivr-node.cjs +2 -0
  189. package/dist/vue2/lib/ivr-node.cjs.map +1 -0
  190. package/dist/vue2/lib/ivr-node.js +4 -5
  191. package/dist/vue2/lib/ivr-node.js.map +1 -1
  192. package/dist/vue2/lib/keyboard-shortcut.cjs +2 -0
  193. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -0
  194. package/dist/vue2/lib/keyboard-shortcut.js +4 -5
  195. package/dist/vue2/lib/keyboard-shortcut.js.map +1 -1
  196. package/dist/vue2/lib/lazy-show.cjs +2 -0
  197. package/dist/vue2/lib/lazy-show.cjs.map +1 -0
  198. package/dist/vue2/lib/link.cjs +2 -0
  199. package/dist/vue2/lib/link.cjs.map +1 -0
  200. package/dist/vue2/lib/list-item-group.cjs +2 -0
  201. package/dist/vue2/lib/list-item-group.cjs.map +1 -0
  202. package/dist/vue2/lib/list-item.cjs +2 -0
  203. package/dist/vue2/lib/list-item.cjs.map +1 -0
  204. package/dist/vue2/lib/list-item.js +2 -3
  205. package/dist/vue2/lib/list-item.js.map +1 -1
  206. package/dist/vue2/lib/message-input.cjs +2 -0
  207. package/dist/vue2/lib/message-input.cjs.map +1 -0
  208. package/dist/vue2/lib/message-input.js +90 -48
  209. package/dist/vue2/lib/message-input.js.map +1 -1
  210. package/dist/vue2/lib/mixins.cjs +2 -0
  211. package/dist/vue2/lib/mixins.cjs.map +1 -0
  212. package/dist/vue2/lib/modal.cjs +3 -0
  213. package/dist/vue2/lib/modal.cjs.map +1 -0
  214. package/dist/vue2/lib/modal.js +10 -11
  215. package/dist/vue2/lib/modal.js.map +1 -1
  216. package/dist/vue2/lib/notice.cjs +2 -0
  217. package/dist/vue2/lib/notice.cjs.map +1 -0
  218. package/dist/vue2/lib/notice.js +2 -3
  219. package/dist/vue2/lib/notice.js.map +1 -1
  220. package/dist/vue2/lib/pagination.cjs +2 -0
  221. package/dist/vue2/lib/pagination.cjs.map +1 -0
  222. package/dist/vue2/lib/pagination.js +2 -3
  223. package/dist/vue2/lib/pagination.js.map +1 -1
  224. package/dist/vue2/lib/popover.cjs +2 -0
  225. package/dist/vue2/lib/popover.cjs.map +1 -0
  226. package/dist/vue2/lib/popover.js +4 -5
  227. package/dist/vue2/lib/popover.js.map +1 -1
  228. package/dist/vue2/lib/presence.cjs +2 -0
  229. package/dist/vue2/lib/presence.cjs.map +1 -0
  230. package/dist/vue2/lib/radio-group.cjs +2 -0
  231. package/dist/vue2/lib/radio-group.cjs.map +1 -0
  232. package/dist/vue2/lib/radio.cjs +2 -0
  233. package/dist/vue2/lib/radio.cjs.map +1 -0
  234. package/dist/vue2/lib/rich-text-editor.cjs +2 -0
  235. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -0
  236. package/dist/vue2/lib/rich-text-editor.js +107 -75
  237. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  238. package/dist/vue2/lib/root-layout.cjs +2 -0
  239. package/dist/vue2/lib/root-layout.cjs.map +1 -0
  240. package/dist/vue2/lib/select-menu.cjs +2 -0
  241. package/dist/vue2/lib/select-menu.cjs.map +1 -0
  242. package/dist/vue2/lib/settings-menu-button.cjs +2 -0
  243. package/dist/vue2/lib/settings-menu-button.cjs.map +1 -0
  244. package/dist/vue2/lib/settings-menu-button.js +2 -3
  245. package/dist/vue2/lib/settings-menu-button.js.map +1 -1
  246. package/dist/vue2/lib/skeleton.cjs +2 -0
  247. package/dist/vue2/lib/skeleton.cjs.map +1 -0
  248. package/dist/vue2/lib/stack.cjs +2 -0
  249. package/dist/vue2/lib/stack.cjs.map +1 -0
  250. package/dist/vue2/lib/tabs.cjs +2 -0
  251. package/dist/vue2/lib/tabs.cjs.map +1 -0
  252. package/dist/vue2/lib/time-pill.cjs +2 -0
  253. package/dist/vue2/lib/time-pill.cjs.map +1 -0
  254. package/dist/vue2/lib/toast.cjs +2 -0
  255. package/dist/vue2/lib/toast.cjs.map +1 -0
  256. package/dist/vue2/lib/toast.js +2 -3
  257. package/dist/vue2/lib/toast.js.map +1 -1
  258. package/dist/vue2/lib/toggle.cjs +2 -0
  259. package/dist/vue2/lib/toggle.cjs.map +1 -0
  260. package/dist/vue2/lib/tooltip-directive.cjs +2 -0
  261. package/dist/vue2/lib/tooltip-directive.cjs.map +1 -0
  262. package/dist/vue2/lib/tooltip.cjs +2 -0
  263. package/dist/vue2/lib/tooltip.cjs.map +1 -0
  264. package/dist/vue2/lib/top-banner-info.cjs +2 -0
  265. package/dist/vue2/lib/top-banner-info.cjs.map +1 -0
  266. package/dist/vue2/lib/unread-pill.cjs +2 -0
  267. package/dist/vue2/lib/unread-pill.cjs.map +1 -0
  268. package/dist/vue2/lib/unread-pill.js +3 -4
  269. package/dist/vue2/lib/unread-pill.js.map +1 -1
  270. package/dist/vue2/lib/utils.cjs +2 -0
  271. package/dist/vue2/lib/utils.cjs.map +1 -0
  272. package/dist/vue2/lib/validation-messages.cjs +2 -0
  273. package/dist/vue2/lib/validation-messages.cjs.map +1 -0
  274. package/dist/vue2/lib/validators.cjs +2 -0
  275. package/dist/vue2/lib/validators.cjs.map +1 -0
  276. package/dist/vue2/style.css +1 -1
  277. package/dist/vue2/types/common/emoji/index.d.ts +3302 -1014
  278. package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
  279. package/dist/vue2/types/components/avatar/avatar.vue.d.ts +1 -1
  280. package/dist/vue2/types/components/button/button.vue.d.ts +2 -2
  281. package/dist/vue2/types/components/card/card.vue.d.ts +1 -1
  282. package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
  283. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts +2 -2
  284. package/dist/vue2/types/components/combobox/combobox.vue.d.ts +1 -1
  285. package/dist/vue2/types/components/dropdown/dropdown.vue.d.ts +1 -1
  286. package/dist/vue2/types/components/emoji/emoji.vue.d.ts +1 -1
  287. package/dist/vue2/types/components/icon/icon.vue.d.ts +2 -22
  288. package/dist/vue2/types/components/icon/icon.vue.d.ts.map +1 -1
  289. package/dist/vue2/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  290. package/dist/vue2/types/components/modal/modal.vue.d.ts +2 -2
  291. package/dist/vue2/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  292. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +91 -1
  293. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  294. package/dist/vue2/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  295. package/dist/vue2/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  296. package/dist/vue2/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  297. package/dist/vue2/types/components/skeleton/skeleton-text.vue.d.ts +2 -2
  298. package/dist/vue2/types/components/skeleton/skeleton.vue.d.ts +1 -1
  299. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +2 -2
  300. package/dist/vue2/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  301. package/dist/vue2/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  302. package/dist/vue2/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  303. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +90 -0
  304. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  305. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  306. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  307. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js +2 -0
  308. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +1 -0
  309. package/dist/vue3/chunks/dropdown-UO3UJalk.js +2 -0
  310. package/dist/vue3/chunks/dropdown-UO3UJalk.js.map +1 -0
  311. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js +2 -0
  312. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js.map +1 -0
  313. package/dist/vue3/chunks/icon_constants-2S_OSQ1t.js +2 -0
  314. package/dist/vue3/chunks/icon_constants-2S_OSQ1t.js.map +1 -0
  315. package/dist/vue3/chunks/index-6tYeqbgP.js +3 -0
  316. package/dist/vue3/chunks/index-6tYeqbgP.js.map +1 -0
  317. package/dist/vue3/chunks/index-IBtQ5jRJ.js +2 -0
  318. package/dist/vue3/chunks/index-IBtQ5jRJ.js.map +1 -0
  319. package/dist/vue3/chunks/{index-BK8b99k1.js → index-mRmwpCBG.js} +2 -2
  320. package/dist/vue3/chunks/{index-BK8b99k1.js.map → index-mRmwpCBG.js.map} +1 -1
  321. package/dist/vue3/chunks/input-0Uksk4DP.js +2 -0
  322. package/dist/vue3/chunks/input-0Uksk4DP.js.map +1 -0
  323. package/dist/vue3/chunks/input_group-AS760Cp7.js +2 -0
  324. package/dist/vue3/chunks/input_group-AS760Cp7.js.map +1 -0
  325. package/dist/vue3/chunks/keyboard_list_navigation-N74Bpdq7.js +2 -0
  326. package/dist/vue3/chunks/keyboard_list_navigation-N74Bpdq7.js.map +1 -0
  327. package/dist/vue3/chunks/link_constants-Kn6kP4i1.js +2 -0
  328. package/dist/vue3/chunks/link_constants-Kn6kP4i1.js.map +1 -0
  329. package/dist/vue3/chunks/list_item_constants-Tsz5CO1m.js +2 -0
  330. package/dist/vue3/chunks/list_item_constants-Tsz5CO1m.js.map +1 -0
  331. package/dist/vue3/chunks/modal-qEzlo0Sj.js +2 -0
  332. package/dist/vue3/chunks/modal-qEzlo0Sj.js.map +1 -0
  333. package/dist/vue3/chunks/notice_action-jO199emq.js +2 -0
  334. package/dist/vue3/chunks/notice_action-jO199emq.js.map +1 -0
  335. package/dist/vue3/chunks/notice_constants-mC6al2Dm.js +2 -0
  336. package/dist/vue3/chunks/notice_constants-mC6al2Dm.js.map +1 -0
  337. package/dist/vue3/chunks/popover_constants-hOEhklvr.js +2 -0
  338. package/dist/vue3/chunks/popover_constants-hOEhklvr.js.map +1 -0
  339. package/dist/vue3/chunks/sr_only_close_button-iD7s1Pbj.js +3 -0
  340. package/dist/vue3/chunks/sr_only_close_button-iD7s1Pbj.js.map +1 -0
  341. package/dist/vue3/chunks/stack_constants-m9Ickqw0.js +2 -0
  342. package/dist/vue3/chunks/stack_constants-m9Ickqw0.js.map +1 -0
  343. package/dist/vue3/chunks/tab-at7WWglk.js +2 -0
  344. package/dist/vue3/chunks/tab-at7WWglk.js.map +1 -0
  345. package/dist/vue3/component-documentation.json +1 -1
  346. package/dist/vue3/dialtone-vue.cjs +2 -0
  347. package/dist/vue3/dialtone-vue.cjs.map +1 -0
  348. package/dist/vue3/dialtone-vue.js +1 -1
  349. package/dist/vue3/lib/attachment-carousel.cjs +2 -0
  350. package/dist/vue3/lib/attachment-carousel.cjs.map +1 -0
  351. package/dist/vue3/lib/attachment-carousel.js +2 -3
  352. package/dist/vue3/lib/attachment-carousel.js.map +1 -1
  353. package/dist/vue3/lib/avatar.cjs +2 -0
  354. package/dist/vue3/lib/avatar.cjs.map +1 -0
  355. package/dist/vue3/lib/avatar.js +2 -3
  356. package/dist/vue3/lib/avatar.js.map +1 -1
  357. package/dist/vue3/lib/badge.cjs +2 -0
  358. package/dist/vue3/lib/badge.cjs.map +1 -0
  359. package/dist/vue3/lib/badge.js +2 -3
  360. package/dist/vue3/lib/badge.js.map +1 -1
  361. package/dist/vue3/lib/banner.cjs +3 -0
  362. package/dist/vue3/lib/banner.cjs.map +1 -0
  363. package/dist/vue3/lib/banner.js +6 -7
  364. package/dist/vue3/lib/banner.js.map +1 -1
  365. package/dist/vue3/lib/breadcrumbs.cjs +2 -0
  366. package/dist/vue3/lib/breadcrumbs.cjs.map +1 -0
  367. package/dist/vue3/lib/button-group.cjs +2 -0
  368. package/dist/vue3/lib/button-group.cjs.map +1 -0
  369. package/dist/vue3/lib/button.cjs +2 -0
  370. package/dist/vue3/lib/button.cjs.map +1 -0
  371. package/dist/vue3/lib/callbar-button-with-popover.cjs +2 -0
  372. package/dist/vue3/lib/callbar-button-with-popover.cjs.map +1 -0
  373. package/dist/vue3/lib/callbar-button-with-popover.js +9 -10
  374. package/dist/vue3/lib/callbar-button-with-popover.js.map +1 -1
  375. package/dist/vue3/lib/callbar-button.cjs +2 -0
  376. package/dist/vue3/lib/callbar-button.cjs.map +1 -0
  377. package/dist/vue3/lib/callbox.cjs +2 -0
  378. package/dist/vue3/lib/callbox.cjs.map +1 -0
  379. package/dist/vue3/lib/callbox.js +2 -3
  380. package/dist/vue3/lib/callbox.js.map +1 -1
  381. package/dist/vue3/lib/card.cjs +2 -0
  382. package/dist/vue3/lib/card.cjs.map +1 -0
  383. package/dist/vue3/lib/checkbox-group.cjs +2 -0
  384. package/dist/vue3/lib/checkbox-group.cjs.map +1 -0
  385. package/dist/vue3/lib/checkbox.cjs +2 -0
  386. package/dist/vue3/lib/checkbox.cjs.map +1 -0
  387. package/dist/vue3/lib/chip.cjs +2 -0
  388. package/dist/vue3/lib/chip.cjs.map +1 -0
  389. package/dist/vue3/lib/chip.js +10 -11
  390. package/dist/vue3/lib/chip.js.map +1 -1
  391. package/dist/vue3/lib/codeblock.cjs +3 -0
  392. package/dist/vue3/lib/codeblock.cjs.map +1 -0
  393. package/dist/vue3/lib/collapsible.cjs +2 -0
  394. package/dist/vue3/lib/collapsible.cjs.map +1 -0
  395. package/dist/vue3/lib/collapsible.js +7 -8
  396. package/dist/vue3/lib/collapsible.js.map +1 -1
  397. package/dist/vue3/lib/combobox-multi-select.cjs +2 -0
  398. package/dist/vue3/lib/combobox-multi-select.cjs.map +1 -0
  399. package/dist/vue3/lib/combobox-with-popover.cjs +2 -0
  400. package/dist/vue3/lib/combobox-with-popover.cjs.map +1 -0
  401. package/dist/vue3/lib/combobox.cjs +2 -0
  402. package/dist/vue3/lib/combobox.cjs.map +1 -0
  403. package/dist/vue3/lib/constants.cjs +2 -0
  404. package/dist/vue3/lib/constants.cjs.map +1 -0
  405. package/dist/vue3/lib/contact-info.cjs +2 -0
  406. package/dist/vue3/lib/contact-info.cjs.map +1 -0
  407. package/dist/vue3/lib/contact-info.js +2 -3
  408. package/dist/vue3/lib/contact-info.js.map +1 -1
  409. package/dist/vue3/lib/contact-row.cjs +2 -0
  410. package/dist/vue3/lib/contact-row.cjs.map +1 -0
  411. package/dist/vue3/lib/contact-row.js +1 -1
  412. package/dist/vue3/lib/datepicker.cjs +2 -0
  413. package/dist/vue3/lib/datepicker.cjs.map +1 -0
  414. package/dist/vue3/lib/datepicker.js +12 -13
  415. package/dist/vue3/lib/datepicker.js.map +1 -1
  416. package/dist/vue3/lib/dates.cjs +2 -0
  417. package/dist/vue3/lib/dates.cjs.map +1 -0
  418. package/dist/vue3/lib/description-list.cjs +2 -0
  419. package/dist/vue3/lib/description-list.cjs.map +1 -0
  420. package/dist/vue3/lib/dropdown.cjs +2 -0
  421. package/dist/vue3/lib/dropdown.cjs.map +1 -0
  422. package/dist/vue3/lib/dropdown.js +6 -7
  423. package/dist/vue3/lib/dropdown.js.map +1 -1
  424. package/dist/vue3/lib/editor.cjs +2 -0
  425. package/dist/vue3/lib/editor.cjs.map +1 -0
  426. package/dist/vue3/lib/editor.js +1 -1
  427. package/dist/vue3/lib/emoji-picker.cjs +2 -0
  428. package/dist/vue3/lib/emoji-picker.cjs.map +1 -0
  429. package/dist/vue3/lib/emoji-picker.js +2 -3
  430. package/dist/vue3/lib/emoji-picker.js.map +1 -1
  431. package/dist/vue3/lib/emoji-row.cjs +2 -0
  432. package/dist/vue3/lib/emoji-row.cjs.map +1 -0
  433. package/dist/vue3/lib/emoji-row.js +1 -1
  434. package/dist/vue3/lib/emoji-text-wrapper.cjs +2 -0
  435. package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -0
  436. package/dist/vue3/lib/emoji-text-wrapper.js +1 -1
  437. package/dist/vue3/lib/emoji.cjs +2 -0
  438. package/dist/vue3/lib/emoji.cjs.map +1 -0
  439. package/dist/vue3/lib/emoji.js +1 -1
  440. package/dist/vue3/lib/feed-item-row.cjs +2 -0
  441. package/dist/vue3/lib/feed-item-row.cjs.map +1 -0
  442. package/dist/vue3/lib/feed-item-row.js +11 -12
  443. package/dist/vue3/lib/feed-item-row.js.map +1 -1
  444. package/dist/vue3/lib/feed-pill.cjs +2 -0
  445. package/dist/vue3/lib/feed-pill.cjs.map +1 -0
  446. package/dist/vue3/lib/feed-pill.js +2 -3
  447. package/dist/vue3/lib/feed-pill.js.map +1 -1
  448. package/dist/vue3/lib/general-row.cjs +2 -0
  449. package/dist/vue3/lib/general-row.cjs.map +1 -0
  450. package/dist/vue3/lib/general-row.js +1 -1
  451. package/dist/vue3/lib/group-row.cjs +2 -0
  452. package/dist/vue3/lib/group-row.cjs.map +1 -0
  453. package/dist/vue3/lib/group-row.js +2 -2
  454. package/dist/vue3/lib/grouped-chip.cjs +2 -0
  455. package/dist/vue3/lib/grouped-chip.cjs.map +1 -0
  456. package/dist/vue3/lib/grouped-chip.js +5 -6
  457. package/dist/vue3/lib/grouped-chip.js.map +1 -1
  458. package/dist/vue3/lib/hovercard.cjs +2 -0
  459. package/dist/vue3/lib/hovercard.cjs.map +1 -0
  460. package/dist/vue3/lib/hovercard.js +7 -8
  461. package/dist/vue3/lib/hovercard.js.map +1 -1
  462. package/dist/vue3/lib/icon.cjs +2 -0
  463. package/dist/vue3/lib/icon.cjs.map +1 -0
  464. package/dist/vue3/lib/icon.js +20 -51
  465. package/dist/vue3/lib/icon.js.map +1 -1
  466. package/dist/vue3/lib/image-viewer.cjs +2 -0
  467. package/dist/vue3/lib/image-viewer.cjs.map +1 -0
  468. package/dist/vue3/lib/image-viewer.js +9 -10
  469. package/dist/vue3/lib/image-viewer.js.map +1 -1
  470. package/dist/vue3/lib/input-group.cjs +2 -0
  471. package/dist/vue3/lib/input-group.cjs.map +1 -0
  472. package/dist/vue3/lib/input.cjs +2 -0
  473. package/dist/vue3/lib/input.cjs.map +1 -0
  474. package/dist/vue3/lib/item-layout.cjs +2 -0
  475. package/dist/vue3/lib/item-layout.cjs.map +1 -0
  476. package/dist/vue3/lib/ivr-node.cjs +2 -0
  477. package/dist/vue3/lib/ivr-node.cjs.map +1 -0
  478. package/dist/vue3/lib/ivr-node.js +4 -5
  479. package/dist/vue3/lib/ivr-node.js.map +1 -1
  480. package/dist/vue3/lib/keyboard-shortcut.cjs +2 -0
  481. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -0
  482. package/dist/vue3/lib/keyboard-shortcut.js +4 -5
  483. package/dist/vue3/lib/keyboard-shortcut.js.map +1 -1
  484. package/dist/vue3/lib/lazy-show.cjs +2 -0
  485. package/dist/vue3/lib/lazy-show.cjs.map +1 -0
  486. package/dist/vue3/lib/link.cjs +2 -0
  487. package/dist/vue3/lib/link.cjs.map +1 -0
  488. package/dist/vue3/lib/list-item-group.cjs +2 -0
  489. package/dist/vue3/lib/list-item-group.cjs.map +1 -0
  490. package/dist/vue3/lib/list-item.cjs +2 -0
  491. package/dist/vue3/lib/list-item.cjs.map +1 -0
  492. package/dist/vue3/lib/list-item.js +2 -3
  493. package/dist/vue3/lib/list-item.js.map +1 -1
  494. package/dist/vue3/lib/message-input.cjs +2 -0
  495. package/dist/vue3/lib/message-input.cjs.map +1 -0
  496. package/dist/vue3/lib/message-input.js +149 -101
  497. package/dist/vue3/lib/message-input.js.map +1 -1
  498. package/dist/vue3/lib/mixins.cjs +2 -0
  499. package/dist/vue3/lib/mixins.cjs.map +1 -0
  500. package/dist/vue3/lib/modal.cjs +3 -0
  501. package/dist/vue3/lib/modal.cjs.map +1 -0
  502. package/dist/vue3/lib/modal.js +11 -12
  503. package/dist/vue3/lib/modal.js.map +1 -1
  504. package/dist/vue3/lib/notice.cjs +2 -0
  505. package/dist/vue3/lib/notice.cjs.map +1 -0
  506. package/dist/vue3/lib/notice.js +2 -3
  507. package/dist/vue3/lib/notice.js.map +1 -1
  508. package/dist/vue3/lib/pagination.cjs +2 -0
  509. package/dist/vue3/lib/pagination.cjs.map +1 -0
  510. package/dist/vue3/lib/pagination.js +2 -3
  511. package/dist/vue3/lib/pagination.js.map +1 -1
  512. package/dist/vue3/lib/popover.cjs +2 -0
  513. package/dist/vue3/lib/popover.cjs.map +1 -0
  514. package/dist/vue3/lib/popover.js +4 -5
  515. package/dist/vue3/lib/popover.js.map +1 -1
  516. package/dist/vue3/lib/presence.cjs +2 -0
  517. package/dist/vue3/lib/presence.cjs.map +1 -0
  518. package/dist/vue3/lib/radio-group.cjs +2 -0
  519. package/dist/vue3/lib/radio-group.cjs.map +1 -0
  520. package/dist/vue3/lib/radio.cjs +2 -0
  521. package/dist/vue3/lib/radio.cjs.map +1 -0
  522. package/dist/vue3/lib/rich-text-editor.cjs +2 -0
  523. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -0
  524. package/dist/vue3/lib/rich-text-editor.js +174 -142
  525. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  526. package/dist/vue3/lib/root-layout.cjs +2 -0
  527. package/dist/vue3/lib/root-layout.cjs.map +1 -0
  528. package/dist/vue3/lib/scroller.cjs +2 -0
  529. package/dist/vue3/lib/scroller.cjs.map +1 -0
  530. package/dist/vue3/lib/select-menu.cjs +2 -0
  531. package/dist/vue3/lib/select-menu.cjs.map +1 -0
  532. package/dist/vue3/lib/settings-menu-button.cjs +2 -0
  533. package/dist/vue3/lib/settings-menu-button.cjs.map +1 -0
  534. package/dist/vue3/lib/settings-menu-button.js +2 -3
  535. package/dist/vue3/lib/settings-menu-button.js.map +1 -1
  536. package/dist/vue3/lib/skeleton.cjs +2 -0
  537. package/dist/vue3/lib/skeleton.cjs.map +1 -0
  538. package/dist/vue3/lib/stack.cjs +2 -0
  539. package/dist/vue3/lib/stack.cjs.map +1 -0
  540. package/dist/vue3/lib/tabs.cjs +2 -0
  541. package/dist/vue3/lib/tabs.cjs.map +1 -0
  542. package/dist/vue3/lib/time-pill.cjs +2 -0
  543. package/dist/vue3/lib/time-pill.cjs.map +1 -0
  544. package/dist/vue3/lib/toast.cjs +2 -0
  545. package/dist/vue3/lib/toast.cjs.map +1 -0
  546. package/dist/vue3/lib/toast.js +2 -3
  547. package/dist/vue3/lib/toast.js.map +1 -1
  548. package/dist/vue3/lib/toggle.cjs +2 -0
  549. package/dist/vue3/lib/toggle.cjs.map +1 -0
  550. package/dist/vue3/lib/tooltip-directive.cjs +2 -0
  551. package/dist/vue3/lib/tooltip-directive.cjs.map +1 -0
  552. package/dist/vue3/lib/tooltip.cjs +2 -0
  553. package/dist/vue3/lib/tooltip.cjs.map +1 -0
  554. package/dist/vue3/lib/top-banner-info.cjs +2 -0
  555. package/dist/vue3/lib/top-banner-info.cjs.map +1 -0
  556. package/dist/vue3/lib/unread-pill.cjs +2 -0
  557. package/dist/vue3/lib/unread-pill.cjs.map +1 -0
  558. package/dist/vue3/lib/unread-pill.js +2 -3
  559. package/dist/vue3/lib/unread-pill.js.map +1 -1
  560. package/dist/vue3/lib/utils.cjs +2 -0
  561. package/dist/vue3/lib/utils.cjs.map +1 -0
  562. package/dist/vue3/lib/validation-messages.cjs +2 -0
  563. package/dist/vue3/lib/validation-messages.cjs.map +1 -0
  564. package/dist/vue3/lib/validators.cjs +2 -0
  565. package/dist/vue3/lib/validators.cjs.map +1 -0
  566. package/dist/vue3/style.css +1 -1
  567. package/dist/vue3/types/common/emoji/index.d.ts +1 -1
  568. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +1 -1
  569. package/dist/vue3/types/components/button/button.vue.d.ts +2 -2
  570. package/dist/vue3/types/components/card/card.vue.d.ts +1 -1
  571. package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
  572. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +2 -2
  573. package/dist/vue3/types/components/combobox/combobox.vue.d.ts +1 -1
  574. package/dist/vue3/types/components/dropdown/dropdown.vue.d.ts +1 -1
  575. package/dist/vue3/types/components/emoji/emoji.vue.d.ts +1 -1
  576. package/dist/vue3/types/components/icon/icon.vue.d.ts +1 -19
  577. package/dist/vue3/types/components/icon/icon.vue.d.ts.map +1 -1
  578. package/dist/vue3/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  579. package/dist/vue3/types/components/modal/modal.vue.d.ts +2 -2
  580. package/dist/vue3/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  581. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +91 -1
  582. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  583. package/dist/vue3/types/components/root_layout/root_layout.vue.d.ts +1 -1
  584. package/dist/vue3/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  585. package/dist/vue3/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  586. package/dist/vue3/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  587. package/dist/vue3/types/components/skeleton/skeleton-text.vue.d.ts +2 -2
  588. package/dist/vue3/types/components/skeleton/skeleton.vue.d.ts +1 -1
  589. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +2 -2
  590. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  591. package/dist/vue3/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  592. package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  593. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +90 -0
  594. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  595. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  596. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  597. package/package.json +24 -16
  598. package/dist/eslint-plugin/index.js +0 -22
  599. package/dist/eslint-plugin/rules/custom-implementation.js +0 -69
  600. package/dist/eslint-plugin/rules/deprecated-component.js +0 -91
  601. package/dist/eslint-plugin/rules/deprecated-directive.js +0 -55
  602. package/dist/eslint-plugin/rules/deprecated-icons.js +0 -114
  603. package/dist/stylelint-plugin/index.js +0 -5
  604. package/dist/stylelint-plugin/rules/no-mixins.js +0 -47
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.cjs","sources":["../../components/banner/banner.vue"],"sourcesContent":["<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <aside\n :class=\"bannerClass\"\n :style=\"bannerBackgroundImage\"\n @keydown.tab=\"trapFocus\"\n >\n <div\n class=\"d-banner__dialog\"\n :class=\"dialogClass\"\n :role=\"role\"\n :aria-labelledby=\"titleId\"\n :aria-describedby=\"contentId\"\n >\n <dt-notice-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n >\n <!-- @slot Slot for custom icon -->\n <slot name=\"icon\" />\n </dt-notice-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n >\n <template #titleOverride>\n <!-- eslint-disable-next-line max-len -->\n <!-- @slot Allows you to override the title, only use this if you need to override with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the banner -->\n <slot />\n </dt-notice-content>\n <dt-notice-action\n :hide-action=\"hideAction\"\n :hide-close=\"hideClose\"\n :close-button-props=\"closeButtonProps\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n @close=\"$emit('close')\"\n >\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <slot name=\"action\" />\n </dt-notice-action>\n </div>\n </aside>\n</template>\n\n<script>\nimport { DtNoticeIcon, DtNoticeContent, DtNoticeAction, NOTICE_KINDS } from '@/components/notice';\nimport Modal from '@/common/mixins/modal';\nimport utils from '@/common/utils';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\n/**\n * Banners are a type of notice, delivering system and engagement messaging.\n * These are highly intrusive notices and should be used sparingly and appropriately.\n * @see https://dialtone.dialpad.com/components/banner.html\n */\nexport default {\n name: 'DtBanner',\n\n components: {\n DtNoticeIcon,\n DtNoticeContent,\n DtNoticeAction,\n },\n\n mixins: [Modal, SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the notice. This can be left blank to remove the title from the notice entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * This will also change the aria role from status to alertdialog.\n * and will modally trap the keyboard focus in the dialog as soon as it displays.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Pins the banner to the top of the window and pushes all app content down.\n * @values true, false\n */\n pinned: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Severity level of the notice, sets the icon and background\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Props for the notice close button.\n */\n closeButtonProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Hides the close button from the notice\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Inner dialog class\n */\n dialogClass: {\n type: String,\n default: '',\n },\n\n /**\n * Banner background image\n */\n backgroundImage: {\n type: String,\n default: '',\n },\n\n /**\n * Background image size, follows the background-size CSS property values\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/background-size\" target=\"_blank\">\n * CSS background-sizes\n * </a>\n */\n backgroundSize: {\n type: String,\n default: 'cover',\n },\n },\n\n emits: [\n /**\n * Close button click event\n *\n * @event close\n */\n 'close',\n ],\n\n computed: {\n role () {\n return this.important ? 'alertdialog' : 'status';\n },\n\n bannerClass () {\n const kindClasses = {\n error: 'd-banner--error',\n info: 'd-banner--info',\n success: 'd-banner--success',\n warning: 'd-banner--warning',\n base: 'd-banner--base',\n };\n\n return [\n 'd-banner',\n kindClasses[this.kind],\n {\n 'd-banner--important': this.important,\n 'd-banner--pinned': this.pinned,\n },\n ];\n },\n\n bannerBackgroundImage () {\n if (this.backgroundImage === '') return null;\n\n return `background-image: url(${this.backgroundImage});\n background-size: ${this.backgroundSize};`;\n },\n },\n\n mounted () {\n if (this.important) {\n this.focusFirstElement();\n }\n },\n\n methods: {\n trapFocus (e) {\n if (this.important) {\n this.focusTrappedTabPress(e);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtNoticeIcon","DtNoticeContent","DtNoticeAction","Modal","SrOnlyCloseButtonMixin","utils","kind","NOTICE_KINDS","e","_createElementBlock","$options","args","_createElementVNode","_normalizeClass","$props","_createBlock","_component_dt_notice_icon","_renderSlot","_ctx","_createVNode","_component_dt_notice_content","_component_dt_notice_action"],"mappings":"koBA4DA,MAAKA,EAAU,CACb,KAAM,WAEN,WAAY,cACVC,EAAY,EACZ,gBAAAC,EAAe,EACf,eAAAC,EAAc,CACf,EAED,OAAQ,CAACC,EAAK,EAAEC,GAAsB,EAEtC,MAAO,CAKL,QAAS,CACP,KAAM,OACN,SAAW,CAAE,OAAOC,UAAM,gBAAiB,CAAG,CAC/C,EAMD,UAAW,CACT,KAAM,OACN,SAAW,CAAE,OAAOA,UAAM,gBAAiB,CAAG,CAC/C,EAKD,MAAO,CACL,KAAM,OACN,QAAS,EACV,EAQD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAMD,OAAQ,CACN,KAAM,QACN,QAAS,EACV,EAMD,KAAM,CACJ,KAAM,OACN,QAAS,OACT,SAAUC,EAAM,CACd,OAAOC,EAAY,EAAC,SAASD,CAAI,CAClC,CACF,EAKD,iBAAkB,CAChB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EAMD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAMD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAMD,WAAY,CACV,KAAM,QACN,QAAS,EACV,EAKD,YAAa,CACX,KAAM,OACN,QAAS,EACV,EAKD,gBAAiB,CACf,KAAM,OACN,QAAS,EACV,EAQD,eAAgB,CACd,KAAM,OACN,QAAS,OACV,CACF,EAED,MAAO,CAML,OACD,EAED,SAAU,CACR,MAAQ,CACN,OAAO,KAAK,UAAY,cAAgB,QACzC,EAED,aAAe,CASb,MAAO,CACL,WATkB,CAClB,MAAO,kBACP,KAAM,iBACN,QAAS,oBACT,QAAS,oBACT,KAAM,kBAKM,KAAK,IAAI,EACrB,CACE,sBAAuB,KAAK,UAC5B,mBAAoB,KAAK,MAC1B,EAEJ,EAED,uBAAyB,CACvB,OAAI,KAAK,kBAAoB,GAAW,KAEjC,yBAAyB,KAAK,eAAe;AAAA,iCACzB,KAAK,cAAc,GAC/C,CACF,EAED,SAAW,CACL,KAAK,WACP,KAAK,kBAAiB,CAEzB,EAED,QAAS,CACP,UAAWE,EAAG,CACR,KAAK,WACP,KAAK,qBAAqBA,CAAC,CAE9B,CACF,CACH,+NArPEC,EA4CQ,mBAAA,QAAA,CA3CL,uBAAOC,EAAW,WAAA,EAClB,uBAAOA,EAAqB,qBAAA,EAC5B,yCAAaA,EAAS,WAAAA,EAAA,UAAA,GAAAC,CAAA,EAAA,CAAA,KAAA,CAAA,KAEvBC,EAAAA,mBAsCM,MAAA,CArCJ,MAAKC,EAAAA,eAAA,CAAC,mBACEC,EAAW,WAAA,CAAA,EAClB,KAAMJ,EAAI,KACV,kBAAiBI,EAAO,QACxB,mBAAkBA,EAAS,YAGnBA,EAAQ,oDADjBC,EAMiB,YAAAC,EAAA,OAJd,KAAMF,EAAI,yBAGX,IAAoB,CAApBG,aAAoBC,EAAA,OAAA,MAAA,sBAEtBC,EAAAA,YAYoBC,EAAA,CAXjB,WAAUN,EAAO,QACjB,aAAYA,EAAS,UACrB,MAAOA,EAAK,QAEF,wBAGT,IAA6B,CAA7BG,aAA6BC,EAAA,OAAA,eAAA,sBAG/B,IAAQ,CAARD,aAAQC,EAAA,OAAA,SAAA,8CAEVC,EAAAA,YAUmBE,EAAA,CAThB,cAAaP,EAAU,WACvB,aAAYA,EAAS,UACrB,qBAAoBA,EAAgB,iBACpC,wBAAuBI,EAAmB,oBAC1C,8BAA6BA,EAAwB,yBACrD,uBAAOA,EAAK,MAAA,OAAA,uBAGb,IAAsB,CAAtBD,aAAsBC,EAAA,OAAA,QAAA"}
@@ -1,7 +1,7 @@
1
1
  import { M as p } from "../chunks/modal-VuMFkZFH.js";
2
2
  import d from "./utils.js";
3
3
  import { a as g } from "../chunks/sr_only_close_button-7O-Ev8uM.js";
4
- import { resolveComponent as r, openBlock as s, createElementBlock as y, normalizeClass as c, normalizeStyle as h, withKeys as k, createElementVNode as C, createBlock as _, withCtx as i, renderSlot as a, createCommentVNode as I, createVNode as u } from "vue";
4
+ import { resolveComponent as l, openBlock as s, createElementBlock as y, normalizeClass as c, normalizeStyle as h, withKeys as k, createElementVNode as C, createBlock as _, withCtx as i, renderSlot as a, createCommentVNode as I, createVNode as u } from "vue";
5
5
  import { _ as B } from "../chunks/_plugin-vue_export-helper-hUChTQA_.js";
6
6
  import { a as S, b as v, D as N } from "../chunks/notice_action-tJfD5Qw1.js";
7
7
  import { N as D } from "../chunks/notice_constants-c--hBFQw.js";
@@ -10,7 +10,6 @@ import "./icon.js";
10
10
  import "@dialpad/dialtone-icons/vue3";
11
11
  import "../chunks/icon_constants-OpYAAKwF.js";
12
12
  import "@dialpad/dialtone-icons/icons.json";
13
- import "./skeleton.js";
14
13
  import "./button.js";
15
14
  import "../chunks/link_constants-vIUB92L4.js";
16
15
  const w = {
@@ -177,11 +176,11 @@ const w = {
177
176
  }
178
177
  }, z = ["role", "aria-labelledby", "aria-describedby"];
179
178
  function O(e, o, t, E, F, n) {
180
- const m = r("dt-notice-icon"), b = r("dt-notice-content"), f = r("dt-notice-action");
179
+ const m = l("dt-notice-icon"), b = l("dt-notice-content"), f = l("dt-notice-action");
181
180
  return s(), y("aside", {
182
181
  class: c(n.bannerClass),
183
182
  style: h(n.bannerBackgroundImage),
184
- onKeydown: o[1] || (o[1] = k((...l) => n.trapFocus && n.trapFocus(...l), ["tab"]))
183
+ onKeydown: o[1] || (o[1] = k((...r) => n.trapFocus && n.trapFocus(...r), ["tab"]))
185
184
  }, [
186
185
  C("div", {
187
186
  class: c(["d-banner__dialog", t.dialogClass]),
@@ -217,7 +216,7 @@ function O(e, o, t, E, F, n) {
217
216
  "close-button-props": t.closeButtonProps,
218
217
  "visually-hidden-close": e.visuallyHiddenClose,
219
218
  "visually-hidden-close-label": e.visuallyHiddenCloseLabel,
220
- onClose: o[0] || (o[0] = (l) => e.$emit("close"))
219
+ onClose: o[0] || (o[0] = (r) => e.$emit("close"))
221
220
  }, {
222
221
  default: i(() => [
223
222
  a(e.$slots, "action")
@@ -227,8 +226,8 @@ function O(e, o, t, E, F, n) {
227
226
  ], 10, z)
228
227
  ], 38);
229
228
  }
230
- const W = /* @__PURE__ */ B(w, [["render", O]]);
229
+ const R = /* @__PURE__ */ B(w, [["render", O]]);
231
230
  export {
232
- W as DtBanner
231
+ R as DtBanner
233
232
  };
234
233
  //# sourceMappingURL=banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sources":["../../components/banner/banner.vue"],"sourcesContent":["<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <aside\n :class=\"bannerClass\"\n :style=\"bannerBackgroundImage\"\n @keydown.tab=\"trapFocus\"\n >\n <div\n class=\"d-banner__dialog\"\n :class=\"dialogClass\"\n :role=\"role\"\n :aria-labelledby=\"titleId\"\n :aria-describedby=\"contentId\"\n >\n <dt-notice-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n >\n <!-- @slot Slot for custom icon -->\n <slot name=\"icon\" />\n </dt-notice-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n >\n <template #titleOverride>\n <!-- eslint-disable-next-line max-len -->\n <!-- @slot Allows you to override the title, only use this if you need to override with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the banner -->\n <slot />\n </dt-notice-content>\n <dt-notice-action\n :hide-action=\"hideAction\"\n :hide-close=\"hideClose\"\n :close-button-props=\"closeButtonProps\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n @close=\"$emit('close')\"\n >\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <slot name=\"action\" />\n </dt-notice-action>\n </div>\n </aside>\n</template>\n\n<script>\nimport { DtNoticeIcon, DtNoticeContent, DtNoticeAction, NOTICE_KINDS } from '@/components/notice';\nimport Modal from '@/common/mixins/modal';\nimport utils from '@/common/utils';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\n/**\n * Banners are a type of notice, delivering system and engagement messaging.\n * These are highly intrusive notices and should be used sparingly and appropriately.\n * @see https://dialtone.dialpad.com/components/banner.html\n */\nexport default {\n name: 'DtBanner',\n\n components: {\n DtNoticeIcon,\n DtNoticeContent,\n DtNoticeAction,\n },\n\n mixins: [Modal, SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the notice. This can be left blank to remove the title from the notice entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * This will also change the aria role from status to alertdialog.\n * and will modally trap the keyboard focus in the dialog as soon as it displays.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Pins the banner to the top of the window and pushes all app content down.\n * @values true, false\n */\n pinned: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Severity level of the notice, sets the icon and background\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Props for the notice close button.\n */\n closeButtonProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Hides the close button from the notice\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Inner dialog class\n */\n dialogClass: {\n type: String,\n default: '',\n },\n\n /**\n * Banner background image\n */\n backgroundImage: {\n type: String,\n default: '',\n },\n\n /**\n * Background image size, follows the background-size CSS property values\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/background-size\" target=\"_blank\">\n * CSS background-sizes\n * </a>\n */\n backgroundSize: {\n type: String,\n default: 'cover',\n },\n },\n\n emits: [\n /**\n * Close button click event\n *\n * @event close\n */\n 'close',\n ],\n\n computed: {\n role () {\n return this.important ? 'alertdialog' : 'status';\n },\n\n bannerClass () {\n const kindClasses = {\n error: 'd-banner--error',\n info: 'd-banner--info',\n success: 'd-banner--success',\n warning: 'd-banner--warning',\n base: 'd-banner--base',\n };\n\n return [\n 'd-banner',\n kindClasses[this.kind],\n {\n 'd-banner--important': this.important,\n 'd-banner--pinned': this.pinned,\n },\n ];\n },\n\n bannerBackgroundImage () {\n if (this.backgroundImage === '') return null;\n\n return `background-image: url(${this.backgroundImage});\n background-size: ${this.backgroundSize};`;\n },\n },\n\n mounted () {\n if (this.important) {\n this.focusFirstElement();\n }\n },\n\n methods: {\n trapFocus (e) {\n if (this.important) {\n this.focusTrappedTabPress(e);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtNoticeIcon","DtNoticeContent","DtNoticeAction","Modal","SrOnlyCloseButtonMixin","utils","kind","NOTICE_KINDS","_createElementBlock","$options","args","_createElementVNode","_normalizeClass","$props","_createBlock","_component_dt_notice_icon","_renderSlot","_ctx","_createVNode","_component_dt_notice_content","_component_dt_notice_action"],"mappings":"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"}
1
+ {"version":3,"file":"banner.js","sources":["../../components/banner/banner.vue"],"sourcesContent":["<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <aside\n :class=\"bannerClass\"\n :style=\"bannerBackgroundImage\"\n @keydown.tab=\"trapFocus\"\n >\n <div\n class=\"d-banner__dialog\"\n :class=\"dialogClass\"\n :role=\"role\"\n :aria-labelledby=\"titleId\"\n :aria-describedby=\"contentId\"\n >\n <dt-notice-icon\n v-if=\"!hideIcon\"\n :kind=\"kind\"\n >\n <!-- @slot Slot for custom icon -->\n <slot name=\"icon\" />\n </dt-notice-icon>\n <dt-notice-content\n :title-id=\"titleId\"\n :content-id=\"contentId\"\n :title=\"title\"\n >\n <template #titleOverride>\n <!-- eslint-disable-next-line max-len -->\n <!-- @slot Allows you to override the title, only use this if you need to override with something other than text. Otherwise use the \"title\" prop. -->\n <slot name=\"titleOverride\" />\n </template>\n <!-- @slot the main textual content of the banner -->\n <slot />\n </dt-notice-content>\n <dt-notice-action\n :hide-action=\"hideAction\"\n :hide-close=\"hideClose\"\n :close-button-props=\"closeButtonProps\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n @close=\"$emit('close')\"\n >\n <!-- @slot Enter a possible action for the user to take, such as a link to another page -->\n <slot name=\"action\" />\n </dt-notice-action>\n </div>\n </aside>\n</template>\n\n<script>\nimport { DtNoticeIcon, DtNoticeContent, DtNoticeAction, NOTICE_KINDS } from '@/components/notice';\nimport Modal from '@/common/mixins/modal';\nimport utils from '@/common/utils';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\n/**\n * Banners are a type of notice, delivering system and engagement messaging.\n * These are highly intrusive notices and should be used sparingly and appropriately.\n * @see https://dialtone.dialpad.com/components/banner.html\n */\nexport default {\n name: 'DtBanner',\n\n components: {\n DtNoticeIcon,\n DtNoticeContent,\n DtNoticeAction,\n },\n\n mixins: [Modal, SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * Sets an ID on the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Sets an ID on the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default () { return utils.getUniqueString(); },\n },\n\n /**\n * Title header of the notice. This can be left blank to remove the title from the notice entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Used in scenarios where the message needs to visually dominate the screen.\n * This will also change the aria role from status to alertdialog.\n * and will modally trap the keyboard focus in the dialog as soon as it displays.\n * @values true, false\n */\n important: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Pins the banner to the top of the window and pushes all app content down.\n * @values true, false\n */\n pinned: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Severity level of the notice, sets the icon and background\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Props for the notice close button.\n */\n closeButtonProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Hides the close button from the notice\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the icon from the notice\n * @values true, false\n */\n hideIcon: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Inner dialog class\n */\n dialogClass: {\n type: String,\n default: '',\n },\n\n /**\n * Banner background image\n */\n backgroundImage: {\n type: String,\n default: '',\n },\n\n /**\n * Background image size, follows the background-size CSS property values\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/background-size\" target=\"_blank\">\n * CSS background-sizes\n * </a>\n */\n backgroundSize: {\n type: String,\n default: 'cover',\n },\n },\n\n emits: [\n /**\n * Close button click event\n *\n * @event close\n */\n 'close',\n ],\n\n computed: {\n role () {\n return this.important ? 'alertdialog' : 'status';\n },\n\n bannerClass () {\n const kindClasses = {\n error: 'd-banner--error',\n info: 'd-banner--info',\n success: 'd-banner--success',\n warning: 'd-banner--warning',\n base: 'd-banner--base',\n };\n\n return [\n 'd-banner',\n kindClasses[this.kind],\n {\n 'd-banner--important': this.important,\n 'd-banner--pinned': this.pinned,\n },\n ];\n },\n\n bannerBackgroundImage () {\n if (this.backgroundImage === '') return null;\n\n return `background-image: url(${this.backgroundImage});\n background-size: ${this.backgroundSize};`;\n },\n },\n\n mounted () {\n if (this.important) {\n this.focusFirstElement();\n }\n },\n\n methods: {\n trapFocus (e) {\n if (this.important) {\n this.focusTrappedTabPress(e);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtNoticeIcon","DtNoticeContent","DtNoticeAction","Modal","SrOnlyCloseButtonMixin","utils","kind","NOTICE_KINDS","_createElementBlock","$options","args","_createElementVNode","_normalizeClass","$props","_createBlock","_component_dt_notice_icon","_renderSlot","_ctx","_createVNode","_component_dt_notice_content","_component_dt_notice_action"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../chunks/link_constants-Kn6kP4i1.js"),e=require("vue"),i=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js"),E=require("./link.cjs"),B=require("./utils.cjs");require("./constants.cjs");const u="d-breadcrumbs__item--selected",o="d-breadcrumbs--inverted",D={name:"DtBreadcrumbItem",components:{DtLink:E.DtLink},inheritAttrs:!1,props:{inverted:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},label:{type:String,default:""}},data(){return{BREADCRUMB_ITEM_SELECTED_MODIFIER:u}},computed:{linkKind(){return this.inverted?c.I:c.M},ariaCurrent(){return this.selected?"location":void 0}}};function f(r,a,t,m,d,n){const l=e.resolveComponent("dt-link");return e.openBlock(),e.createElementBlock("li",{"data-qa":"dt-breadcrumb-item",class:e.normalizeClass(["d-breadcrumbs__item",{[d.BREADCRUMB_ITEM_SELECTED_MODIFIER]:t.selected}])},[e.createVNode(l,e.mergeProps({kind:n.linkKind,"aria-current":n.ariaCurrent,"data-qa":"breadcrumb-item"},r.$attrs),{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])]),_:3},16,["kind","aria-current"])],2)}const s=i._(D,[["render",f]]),I={name:"DtBreadcrumbs",components:{DtBreadcrumbItem:s},props:{breadcrumbs:{type:Array,default:()=>[],validate(r){return r.every(({href:a,label:t})=>a!==void 0&&t!==void 0)}},inverted:{type:Boolean,default:!1},ariaLabel:{type:String,default:"breadcrumb"}},data(){return{BREADCRUMBS_INVERTED_MODIFIER:o}},methods:{getBreadcrumbItemKey(r){return`breadcrumbs-item-${r}-${B.default.getUniqueString()}`}}},p=["aria-label"];function R(r,a,t,m,d,n){const l=e.resolveComponent("dt-breadcrumb-item");return e.openBlock(),e.createElementBlock("nav",{"aria-label":t.ariaLabel,"data-qa":"dt-breadcrumbs",class:e.normalizeClass(["d-breadcrumbs",{[d.BREADCRUMBS_INVERTED_MODIFIER]:t.inverted}])},[e.createElementVNode("ol",null,[e.renderSlot(r.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.breadcrumbs,(b,_)=>(e.openBlock(),e.createBlock(l,e.mergeProps({key:n.getBreadcrumbItemKey(_),inverted:t.inverted},b),null,16,["inverted"]))),128))])])],10,p)}const k=i._(I,[["render",R]]);exports.BREADCRUMBS_INVERTED_MODIFIER=o;exports.BREADCRUMB_ITEM_SELECTED_MODIFIER=u;exports.DtBreadcrumbItem=s;exports.DtBreadcrumbs=k;
2
+ //# sourceMappingURL=breadcrumbs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.cjs","sources":["../../components/breadcrumbs/breadcrumbs_constants.js","../../components/breadcrumbs/breadcrumb_item.vue","../../components/breadcrumbs/breadcrumbs.vue"],"sourcesContent":["export const BREADCRUMB_ITEM_SELECTED_MODIFIER = 'd-breadcrumbs__item--selected';\nexport const BREADCRUMBS_INVERTED_MODIFIER = 'd-breadcrumbs--inverted';\n","<template>\n <li\n data-qa=\"dt-breadcrumb-item\"\n :class=\"[\n 'd-breadcrumbs__item',\n { [BREADCRUMB_ITEM_SELECTED_MODIFIER]: selected },\n ]\"\n >\n <dt-link\n :kind=\"linkKind\"\n :aria-current=\"ariaCurrent\"\n data-qa=\"breadcrumb-item\"\n v-bind=\"$attrs\"\n >\n <!-- @slot default slot for breadcrumb item's label -->\n <slot>\n {{ label }}\n </slot>\n </dt-link>\n </li>\n</template>\n\n<script>\nimport { BREADCRUMB_ITEM_SELECTED_MODIFIER } from './breadcrumbs_constants';\nimport { DtLink } from '../link';\nimport { INVERTED, MUTED } from '../link/link_constants';\n\nexport default {\n name: 'DtBreadcrumbItem',\n\n components: {\n DtLink,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Passed through to link. If true, applies inverted styles to the link.\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Applies selected styles to the breadcrumb\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Describes the breadcrumb. Overridden by default slot\n */\n label: {\n type: String,\n default: '',\n },\n },\n\n data () {\n return {\n BREADCRUMB_ITEM_SELECTED_MODIFIER,\n };\n },\n\n computed: {\n linkKind () {\n return this.inverted ? INVERTED : MUTED;\n },\n\n ariaCurrent () {\n return this.selected ? 'location' : undefined;\n },\n },\n};\n</script>\n","<template>\n <nav\n :aria-label=\"ariaLabel\"\n data-qa=\"dt-breadcrumbs\"\n :class=\"[\n 'd-breadcrumbs',\n { [BREADCRUMBS_INVERTED_MODIFIER]: inverted },\n ]\"\n >\n <ol>\n <!-- @slot default slot for breadcrumbs content -->\n <slot>\n <dt-breadcrumb-item\n v-for=\"(item, index) in breadcrumbs\"\n :key=\"getBreadcrumbItemKey(index)\"\n :inverted=\"inverted\"\n v-bind=\"item\"\n />\n </slot>\n </ol>\n </nav>\n</template>\n\n<script>\nimport { BREADCRUMBS_INVERTED_MODIFIER } from './breadcrumbs_constants';\nimport DtBreadcrumbItem from './breadcrumb_item.vue';\nimport utils from '@/common/utils';\n\n/**\n * Breadcrumbs are links used to provide context for the currently-viewed page\n * and where it is located within the overall site structure.\n * @see https://dialtone.dialpad.com/components/breadcrumbs.html\n */\nexport default {\n name: 'DtBreadcrumbs',\n\n components: {\n DtBreadcrumbItem,\n },\n\n props: {\n /**\n * A provided list of breadcrumbs. Overridden by default slot\n */\n breadcrumbs: {\n type: Array,\n default: () => [],\n validate (breadcrumbs) {\n return breadcrumbs.every(({ href, label }) => {\n return href !== undefined && label !== undefined;\n });\n },\n },\n\n /**\n * Passed through to link. If true, applies inverted styles to the link.\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the navigation content.\n */\n ariaLabel: {\n type: String,\n default: 'breadcrumb',\n },\n },\n\n data () {\n return {\n BREADCRUMBS_INVERTED_MODIFIER,\n };\n },\n\n methods: {\n getBreadcrumbItemKey (index) {\n return `breadcrumbs-item-${index}-${utils.getUniqueString()}`;\n },\n },\n};\n</script>\n"],"names":["BREADCRUMB_ITEM_SELECTED_MODIFIER","BREADCRUMBS_INVERTED_MODIFIER","_sfc_main","DtLink","INVERTED","MUTED","_createElementBlock","_normalizeClass","$data","$props","_createVNode","_component_dt_link","_mergeProps","$options","_ctx","_renderSlot","DtBreadcrumbItem","breadcrumbs","href","label","index","utils","_createElementVNode","_openBlock","_Fragment","_renderList","item","_createBlock","_component_dt_breadcrumb_item"],"mappings":"kSAAY,MAACA,EAAoC,gCACpCC,EAAgC,0BC0BxCC,EAAU,CACb,KAAM,mBAEN,WAAY,CACV,OAAAC,EAAM,MACP,EAED,aAAc,GAEd,MAAO,CAIL,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAKD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAKD,MAAO,CACL,KAAM,OACN,QAAS,EACV,CACF,EAED,MAAQ,CACN,MAAO,CACL,kCAAAH,EAEH,EAED,SAAU,CACR,UAAY,CACV,OAAO,KAAK,SAAWI,EAAO,EAAIC,GACnC,EAED,aAAe,CACb,OAAO,KAAK,SAAW,WAAa,MACrC,CACF,CACH,qFA5EEC,EAkBK,mBAAA,KAAA,CAjBH,UAAQ,qBACP,MAAKC,EAAAA,eAAA,uBAA0C,CAAA,CAAAC,EAAA,iCAAiC,EAAGC,EAAQ,QAAA,MAK5FC,EAAA,YAUUC,EAVVC,aAUU,CATP,KAAMC,EAAQ,SACd,eAAcA,EAAW,YAC1B,UAAQ,mBACAC,EAAM,MAAA,EAAA,mBAGd,IAEO,CAFPC,EAAAA,WAEOD,sBAFP,IAEO,qCADFL,EAAK,KAAA,EAAA,CAAA,yECiBXP,EAAU,CACb,KAAM,gBAEN,WAAY,CACV,iBAAAc,CACD,EAED,MAAO,CAIL,YAAa,CACX,KAAM,MACN,QAAS,IAAM,CAAE,EACjB,SAAUC,EAAa,CACrB,OAAOA,EAAY,MAAM,CAAC,CAAE,KAAAC,EAAM,MAAAC,KACzBD,IAAS,QAAaC,IAAU,MACxC,CACF,CACF,EAMD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAKD,UAAW,CACT,KAAM,OACN,QAAS,YACV,CACF,EAED,MAAQ,CACN,MAAO,CACL,8BAAAlB,EAEH,EAED,QAAS,CACP,qBAAsBmB,EAAO,CAC3B,MAAO,oBAAoBA,CAAK,IAAIC,EAAAA,QAAM,gBAAiB,CAAA,EAC5D,CACF,CACH,iHAlFEf,EAmBM,mBAAA,MAAA,CAlBH,aAAYG,EAAS,UACtB,UAAQ,iBACP,MAAKF,EAAAA,eAAA,iBAAoC,CAAA,CAAAC,EAAA,6BAA6B,EAAGC,EAAQ,QAAA,MAKlFa,EAUK,mBAAA,KAAA,KAAA,CARHP,EAAAA,WAOOD,sBAPP,IAOO,EANLS,EAAAA,UAAA,EAAA,EAAAjB,EAAA,mBAKEkB,WAJwB,KAAAC,EAAA,WAAAhB,EAAA,YAAhB,CAAAiB,EAAMN,KADhBG,YAAA,EAAAI,cAKEC,EALFhB,EAAAA,WAKE,CAHC,IAAKC,EAAoB,qBAACO,CAAK,EAC/B,SAAUX,EAAQ,UACXiB,CAAI,EAAA,KAAA,GAAA,CAAA,UAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),u=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js"),n={start:"d-btn-group--start",end:"d-btn-group--end","space-between":"d-btn-group--space-between"},s={name:"DtButtonGroup",props:{alignment:{type:String,default:"start",validator:t=>Object.keys(n).includes(t)}},data(){return{BUTTON_GROUP_ALIGNMENT:n}}};function a(t,l,r,p,o,d){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["d-btn-group",o.BUTTON_GROUP_ALIGNMENT[r.alignment]]),role:"group"},[e.renderSlot(t.$slots,"default")],2)}const c=u._(s,[["render",a]]);exports.BUTTON_GROUP_ALIGNMENT=n;exports.DtButtonGroup=c;
2
+ //# sourceMappingURL=button-group.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-group.cjs","sources":["../../components/button_group/button_group_constants.js","../../components/button_group/button_group.vue"],"sourcesContent":["export const BUTTON_GROUP_ALIGNMENT = {\n start: 'd-btn-group--start',\n end: 'd-btn-group--end',\n 'space-between': 'd-btn-group--space-between',\n};\n","<template>\n <div\n :class=\"[\n 'd-btn-group',\n BUTTON_GROUP_ALIGNMENT[alignment],\n ]\"\n role=\"group\"\n >\n <!-- @slot Default slot for button items -->\n <slot />\n </div>\n</template>\n\n<script>\nimport { BUTTON_GROUP_ALIGNMENT } from './button_group_constants';\n\nexport default {\n name: 'DtButtonGroup',\n\n props: {\n /**\n * Alignment of the buttons inside the container\n */\n alignment: {\n type: String,\n default: 'start',\n validator: (alignment) => Object.keys(BUTTON_GROUP_ALIGNMENT).includes(alignment),\n },\n },\n\n data () {\n return {\n BUTTON_GROUP_ALIGNMENT,\n };\n },\n};\n</script>\n"],"names":["BUTTON_GROUP_ALIGNMENT","_sfc_main","alignment","_createElementBlock","_normalizeClass","$data","$props","_renderSlot","_ctx"],"mappings":"oKAAaA,EAAyB,CACpC,MAAO,qBACP,IAAK,mBACL,gBAAiB,4BACnB,ECYKC,EAAU,CACb,KAAM,gBAEN,MAAO,CAIL,UAAW,CACT,KAAM,OACN,QAAS,QACT,UAAYC,GAAc,OAAO,KAAKF,CAAsB,EAAE,SAASE,CAAS,CACjF,CACF,EAED,MAAQ,CACN,MAAO,CACL,uBAAAF,EAEH,CACH,+CAlCEG,EASM,mBAAA,MAAA,CARH,MAAKC,EAAAA,eAAA,eAA+BC,EAAA,uBAAuBC,EAAS,SAAA,IAIrE,KAAK,UAGLC,aAAQC,EAAA,OAAA,SAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),h=require("./utils.cjs"),_=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js"),b=require("../chunks/link_constants-Kn6kP4i1.js");require("./constants.cjs");const l={xs:"d-btn--xs",sm:"d-btn--sm",md:"",lg:"d-btn--lg",xl:"d-btn--xl"},r={default:"",muted:"d-btn--muted",danger:"d-btn--danger",inverted:"d-btn--inverted"},d={clear:"",primary:"d-btn--primary",outlined:"d-btn--outlined"},m=["submit","reset","button"],c={left:"d-btn__icon--left",right:"d-btn__icon--right",top:"d-btn__icon--top",bottom:"d-btn__icon--bottom"},I=[{circle:!0,kind:"default",importance:"primary",message:o(!0,"default","primary")},{circle:!0,kind:"danger",importance:"outlined",message:o(!0,"danger","outlined")},{circle:!0,kind:"muted",importance:"primary",message:o(!0,"muted","primary")},{circle:!1,kind:"muted",importance:"primary",message:o(!1,"muted","primary")}],f={xs:"200",sm:"200",md:"300",lg:"400",xl:"500"};function o(t,a,n){return`You cannot have a ${t?"circle ":""}button with kind: ${a} and importance: ${n} as it does not exist in our design system. See https://dialtone.dialpad.com/components/button.html for a list of available button styles`}const p={name:"DtButton",inheritAttrs:!1,props:{circle:{type:Boolean,default:!1},iconPosition:{type:String,default:"left",validator:t=>Object.keys(c).includes(t)},importance:{type:String,default:"primary",validator:t=>Object.keys(d).includes(t)},link:{type:Boolean,default:!1},linkKind:{type:String,default:"default",validator:t=>Object.keys(b.a).includes(t)},disabled:{type:Boolean,default:!1},type:{type:String,default:"button",validator:t=>m.includes(t)},width:{type:String,default:null},size:{type:String,default:"md",validator:t=>Object.keys(l).includes(t)},labelClass:{type:[String,Array,Object],default:""},loading:{type:Boolean,default:!1},kind:{type:String,default:"default",validator:t=>Object.keys(r).includes(t)},assertiveOnFocus:{type:Boolean,default:!1},active:{type:Boolean,default:!1}},emits:["focusin","focusout"],data(){return{ICON_POSITION_MODIFIERS:c,isInFocus:!1,hasSlotContent:h.hasSlotContent}},computed:{buttonListeners(){return{focusin:t=>{this.isInFocus=this.assertiveOnFocus,this.$emit("focusin",t)},focusout:t=>{this.isInFocus=!1,this.$emit("focusout",t)}}},computedAriaLive(){return this.assertiveOnFocus&&this.isInFocus?"assertive":this.$attrs.ariaLive},iconSize(){return f[this.size]}},watch:{$props:{deep:!0,immediate:!0,handler(){process.env.NODE_ENV!=="production"&&(this.circle&&this.link&&e.warn("You cannot enable circle and link at the same time",this),this.isInvalidPropCombination(this.circle,this.kind,this.importance))}}},methods:{buttonClasses(){return this.link?["d-link",b.a[this.linkKind],l[this.size]]:["d-btn",d[this.importance],r[this.kind],l[this.size],{"d-btn--circle":this.circle,"d-btn--loading":this.loading,"d-btn--icon-only":this.isIconOnly(),"d-btn--vertical":this.isVerticalIconLayout(),"d-btn--active":this.active}]},isInvalidPropCombination(t,a,n){for(const i of I)if(t===i.circle&&a===i.kind&&n===i.importance)return console.warn(i.message),!1;return!0},shouldRenderIcon(){return this.$slots.icon&&!this.link},isIconOnly(){return this.shouldRenderIcon()&&!this.$slots.default},isVerticalIconLayout(){return!this.isIconOnly()&&["top","bottom"].includes(this.iconPosition)}}},O=["type","disabled","aria-live","aria-label"];function y(t,a,n,i,u,s){return e.openBlock(),e.createElementBlock("button",e.mergeProps({class:["base-button__button",s.buttonClasses()],"data-qa":"dt-button",type:n.type,disabled:n.disabled,style:{width:n.width},"aria-live":s.computedAriaLive,"aria-label":n.loading?"loading":t.$attrs["aria-label"]},t.$attrs,e.toHandlers(s.buttonListeners,!0)),[s.shouldRenderIcon()?(e.openBlock(),e.createElementBlock("span",{key:0,"data-qa":"dt-button-icon",class:e.normalizeClass(["base-button__icon","d-btn__icon",u.ICON_POSITION_MODIFIERS[n.iconPosition]])},[e.renderSlot(t.$slots,"icon",{iconSize:s.iconSize})],2)):e.createCommentVNode("",!0),u.hasSlotContent(t.$slots.default)?(e.openBlock(),e.createElementBlock("span",{key:1,"data-qa":"dt-button-label",class:e.normalizeClass(["d-btn__label","base-button__label",n.labelClass])},[e.renderSlot(t.$slots,"default")],2)):e.createCommentVNode("",!0)],16,O)}const S=_._(p,[["render",y]]);exports.BUTTON_ICON_SIZES=f;exports.BUTTON_IMPORTANCE_MODIFIERS=d;exports.BUTTON_KIND_MODIFIERS=r;exports.BUTTON_SIZE_MODIFIERS=l;exports.BUTTON_TYPES=m;exports.DtButton=S;exports.ICON_POSITION_MODIFIERS=c;exports.INVALID_COMBINATION=I;
2
+ //# sourceMappingURL=button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.cjs","sources":["../../components/button/button_constants.js","../../components/button/button.vue"],"sourcesContent":["export const BUTTON_SIZE_MODIFIERS = {\n xs: 'd-btn--xs',\n sm: 'd-btn--sm',\n md: '',\n lg: 'd-btn--lg',\n xl: 'd-btn--xl',\n};\n\nexport const BUTTON_KIND_MODIFIERS = {\n default: '',\n muted: 'd-btn--muted',\n danger: 'd-btn--danger',\n inverted: 'd-btn--inverted',\n};\n\nexport const BUTTON_IMPORTANCE_MODIFIERS = {\n clear: '',\n primary: 'd-btn--primary',\n outlined: 'd-btn--outlined',\n};\n\nexport const BUTTON_TYPES = ['submit', 'reset', 'button'];\n\nexport const ICON_POSITION_MODIFIERS = {\n left: 'd-btn__icon--left',\n right: 'd-btn__icon--right',\n top: 'd-btn__icon--top',\n bottom: 'd-btn__icon--bottom',\n};\n\nexport const INVALID_COMBINATION = [\n {\n circle: true,\n kind: 'default',\n importance: 'primary',\n message: _invalidCombinationMessage(true, 'default', 'primary'),\n },\n {\n circle: true,\n kind: 'danger',\n importance: 'outlined',\n message: _invalidCombinationMessage(true, 'danger', 'outlined'),\n },\n {\n circle: true,\n kind: 'muted',\n importance: 'primary',\n message: _invalidCombinationMessage(true, 'muted', 'primary'),\n },\n {\n circle: false,\n kind: 'muted',\n importance: 'primary',\n message: _invalidCombinationMessage(false, 'muted', 'primary'),\n },\n];\n\nexport const BUTTON_ICON_SIZES = {\n xs: '200',\n sm: '200',\n md: '300',\n lg: '400',\n xl: '500',\n};\n\nfunction _invalidCombinationMessage (circle, kind, importance) {\n return `You cannot have a ${circle ? 'circle ' : ''}button \\\nwith kind: ${kind} and importance: ${importance} as it \\\ndoes not exist in our design system. \\\nSee https://dialtone.dialpad.com/components/button.html for a \\\nlist of available button styles`;\n}\n\nexport default {\n BUTTON_SIZE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_TYPES,\n ICON_POSITION_MODIFIERS,\n INVALID_COMBINATION,\n BUTTON_ICON_SIZES,\n};\n","<template>\n <button\n :class=\"[\n 'base-button__button',\n buttonClasses(),\n ]\"\n data-qa=\"dt-button\"\n :type=\"type\"\n :disabled=\"disabled\"\n :style=\"{ width: width }\"\n :aria-live=\"computedAriaLive\"\n :aria-label=\"loading ? 'loading' : $attrs['aria-label']\"\n v-bind=\"$attrs\"\n v-on=\"buttonListeners\"\n >\n <!-- NOTE(cormac): This span is needed since we can't apply styles to slots. -->\n <span\n v-if=\"shouldRenderIcon()\"\n data-qa=\"dt-button-icon\"\n :class=\"[\n 'base-button__icon',\n 'd-btn__icon',\n ICON_POSITION_MODIFIERS[iconPosition],\n ]\"\n >\n <!-- @slot Button icon -->\n <slot\n name=\"icon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <span\n v-if=\"hasSlotContent($slots.default)\"\n data-qa=\"dt-button-label\"\n :class=\"['d-btn__label', 'base-button__label', labelClass]\"\n >\n <!-- @slot Content within button -->\n <slot />\n </span>\n </button>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { hasSlotContent } from '@/common/utils';\n\nimport {\n BUTTON_SIZE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_ICON_SIZES,\n BUTTON_TYPES,\n ICON_POSITION_MODIFIERS,\n INVALID_COMBINATION,\n} from './button_constants';\n\nimport { LINK_KIND_MODIFIERS } from '@/components/link';\n\n/**\n * A button is a UI element which allows users to take an action throughout the app.\n * It is important a button is identifiable, consistent, and communicates its actions clearly,\n * and is appropriately sized to its action.\n * @see https://dialtone.dialpad.com/components/button.html\n */\nexport default {\n name: 'DtButton',\n\n inheritAttrs: false,\n\n props: {\n /**\n * Whether the button is a circle or not.\n * @values true, false\n */\n circle: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The position of the icon slot within the button.\n * @values left, right, top, bottom\n */\n iconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * Whether the button should be styled as a link or not.\n * @values true, false\n * @see DtLink\n */\n link: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The color of the link and button if the button is styled as a link.\n * @values default, warning, danger, success, muted, inverted\n * @see DtLink\n */\n linkKind: {\n type: String,\n default: 'default',\n validator: (lk) => Object.keys(LINK_KIND_MODIFIERS).includes(lk),\n },\n\n /**\n * HTML button disabled attribute\n * <a\n * class=\"d-link\"\n * href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\"\n * target=\"_blank\"\n * >\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button type attribute\n * <a\n * class=\"d-link\"\n * href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type\"\n * target=\"_blank\"\n * >\n * (Reference)\n * </a>\n * @values button, submit, reset\n */\n type: {\n type: String,\n default: 'button',\n validator: (t) => BUTTON_TYPES.includes(t),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n\n /**\n * The size of the button.\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (s) => Object.keys(BUTTON_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Whether the button should display a loading animation or not.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The color of the button.\n * @values default, muted, danger, inverted\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus. default is to not.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n */\n active: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native button focus in event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native button focus out event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n ],\n\n data () {\n return {\n ICON_POSITION_MODIFIERS,\n // whether the button is currently in focus\n isInFocus: false,\n hasSlotContent,\n };\n },\n\n computed: {\n\n buttonListeners () {\n return {\n focusin: (e) => {\n this.isInFocus = this.assertiveOnFocus;\n this.$emit('focusin', e);\n },\n\n focusout: (e) => {\n this.isInFocus = false;\n this.$emit('focusout', e);\n },\n };\n },\n\n computedAriaLive () {\n return this.assertiveOnFocus && this.isInFocus ? 'assertive' : this.$attrs.ariaLive;\n },\n\n iconSize () {\n return BUTTON_ICON_SIZES[this.size];\n },\n },\n\n watch: {\n $props: {\n deep: true,\n immediate: true,\n handler () {\n if (process.env.NODE_ENV === 'production') return;\n\n if (this.circle && this.link) {\n warn('You cannot enable circle and link at the same time', this);\n }\n\n this.isInvalidPropCombination(this.circle, this.kind, this.importance);\n },\n },\n },\n\n methods: {\n buttonClasses () {\n if (this.link) {\n return [\n 'd-link',\n LINK_KIND_MODIFIERS[this.linkKind],\n BUTTON_SIZE_MODIFIERS[this.size],\n ];\n }\n return [\n 'd-btn',\n BUTTON_IMPORTANCE_MODIFIERS[this.importance],\n BUTTON_KIND_MODIFIERS[this.kind],\n BUTTON_SIZE_MODIFIERS[this.size],\n {\n 'd-btn--circle': this.circle,\n 'd-btn--loading': this.loading,\n 'd-btn--icon-only': this.isIconOnly(),\n 'd-btn--vertical': this.isVerticalIconLayout(),\n 'd-btn--active': this.active,\n },\n ];\n },\n\n isInvalidPropCombination (circle, kind, importance) {\n for (const row of INVALID_COMBINATION) {\n if (circle === row.circle && kind === row.kind && importance === row.importance) {\n console.warn(row.message);\n return false;\n }\n }\n return true;\n },\n\n shouldRenderIcon () {\n return this.$slots.icon && !this.link;\n },\n\n isIconOnly () {\n return this.shouldRenderIcon() && !this.$slots.default;\n },\n\n isVerticalIconLayout () {\n return !this.isIconOnly() && ['top', 'bottom'].includes(this.iconPosition);\n },\n },\n};\n</script>\n"],"names":["BUTTON_SIZE_MODIFIERS","BUTTON_KIND_MODIFIERS","BUTTON_IMPORTANCE_MODIFIERS","BUTTON_TYPES","ICON_POSITION_MODIFIERS","INVALID_COMBINATION","_invalidCombinationMessage","BUTTON_ICON_SIZES","circle","kind","importance","_sfc_main","position","i","lk","LINK_KIND_MODIFIERS","s","k","hasSlotContent","e","warn","row","_openBlock","_createElementBlock","_mergeProps","$options","$props","_ctx","_toHandlers","_normalizeClass","$data","_renderSlot"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./utils.cjs"),e=require("vue"),d=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js"),l=require("./callbar-button.cjs"),p=require("./popover.cjs"),b=require("./button.cjs"),h=require("./icon.cjs");require("./constants.cjs");require("./tooltip.cjs");require("../chunks/popover_constants-hOEhklvr.js");require("tippy.js");require("./lazy-show.cjs");require("../chunks/modal-qEzlo0Sj.js");require("../chunks/sr_only_close_button-iD7s1Pbj.js");require("../chunks/link_constants-Kn6kP4i1.js");require("@dialpad/dialtone-icons/vue3");require("../chunks/icon_constants-2S_OSQ1t.js");require("@dialpad/dialtone-icons/icons.json");const f={name:"DtRecipeCallbarButtonWithPopover",components:{DtRecipeCallbarButton:l.DtRecipeCallbarButton,DtPopover:p.DtPopover,DtButton:b.DtButton,DtIcon:h.DtIcon},inheritAttrs:!1,props:{id:{type:String,default(){return u.default.getUniqueString()}},ariaLabel:{type:String,default:null,validator:t=>t||(void 0).$slots.default},arrowButtonLabel:{type:String,required:!0,validator:t=>!!t},placement:{type:String,default:"top"},initialFocusElement:{type:String,default:"first"},showCloseButton:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},forceShowArrow:{type:Boolean,default:!1},active:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},onClick:{type:Function,default:null},buttonClass:{type:[String,Array,Object],default:""},textClass:{type:[String,Array,Object],default:""},buttonWidthSize:{type:String,default:"xl",validator:t=>l.CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(t)},contentClass:{type:[String,Array,Object],default:""},openPopover:{type:Boolean,default:!1}},emits:["arrow-click","click","opened"],data(){return{open:!1}},computed:{showArrowButton(){return this.forceShowArrow||!this.disabled},isCompactMode(){return this.buttonWidthSize==="sm"||this.buttonWidthSize==="md"},showPopover(){return!this.openPopover||this.open?(this.syncOpenState(),!1):this.toggleOpen()}},methods:{arrowClick(t){return this.$emit("arrow-click",t),this.toggleOpen()},toggleOpen(){return this.open=!this.open},syncOpenState(){this.open=this.openPopover},buttonClick(t){this.$props.onClick?this.$emit("click",t):this.arrowClick(t)},onModalIsOpened(t){this.open=t,this.$emit("opened",t)}}},w={class:"dt-recipe--callbar-button-with-popover"};function C(t,v,o,_,n,r){const i=e.resolveComponent("dt-recipe-callbar-button"),a=e.resolveComponent("dt-icon"),c=e.resolveComponent("dt-button"),s=e.resolveComponent("dt-popover");return e.openBlock(),e.createElementBlock("div",w,[e.createVNode(i,{"aria-label":o.ariaLabel,disabled:o.disabled,active:o.active,danger:o.danger,"button-class":o.buttonClass,"button-width-size":o.buttonWidthSize,"text-class":o.textClass,class:"dt-recipe--callbar-button-with-popover--main-button",onClick:r.buttonClick},{icon:e.withCtx(()=>[e.renderSlot(t.$slots,"icon")]),tooltip:e.withCtx(()=>[e.renderSlot(t.$slots,"tooltip")]),default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["aria-label","disabled","active","danger","button-class","button-width-size","text-class","onClick"]),r.showArrowButton?(e.openBlock(),e.createBlock(s,e.mergeProps({key:0,id:o.id,modal:!1,open:n.open,placement:o.placement,"initial-focus-element":o.initialFocusElement,"show-close-button":o.showCloseButton,offset:[0,16],padding:"none",class:"dt-recipe--callbar-button-with-popover--popover-wrapper","dialog-class":["dt-recipe--callbar-button-with-popover--popover",o.contentClass],"header-class":"d-d-flex d-ai-center d-fw-normal d-px12"},t.$attrs,{"open-popover":r.showPopover,onOpened:r.onModalIsOpened}),{anchor:e.withCtx(()=>[e.createVNode(c,{circle:"",importance:"clear",size:"lg",class:e.normalizeClass(["dt-recipe--callbar-button-with-popover--arrow",{"dt-recipe--callbar-button-with-popover--arrow--large":!r.isCompactMode}]),width:"2rem","aria-label":o.arrowButtonLabel,active:n.open,onClick:r.arrowClick},{icon:e.withCtx(()=>[e.createVNode(a,{name:"chevron-up",class:"dt-recipe--callbar-button-with-popover--arrow__icon",size:"200"})]),_:1},8,["class","aria-label","active","onClick"])]),content:e.withCtx(()=>[e.renderSlot(t.$slots,"content")]),headerContent:e.withCtx(()=>[e.renderSlot(t.$slots,"headerContent")]),footerContent:e.withCtx(()=>[e.renderSlot(t.$slots,"footerContent")]),_:3},16,["id","open","placement","initial-focus-element","show-close-button","dialog-class","open-popover","onOpened"])):e.createCommentVNode("",!0)])}const m=d._(f,[["render",C]]);exports.DtRecipeCallbarButtonWithPopover=m;
2
+ //# sourceMappingURL=callbar-button-with-popover.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbar-button-with-popover.cjs","sources":["../../recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-popover\"\n >\n <dt-recipe-callbar-button\n :aria-label=\"ariaLabel\"\n :disabled=\"disabled\"\n :active=\"active\"\n :danger=\"danger\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :text-class=\"textClass\"\n class=\"dt-recipe--callbar-button-with-popover--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-popover\n v-if=\"showArrowButton\"\n :id=\"id\"\n :modal=\"false\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"initialFocusElement\"\n :show-close-button=\"showCloseButton\"\n :offset=\"[0, 16]\"\n padding=\"none\"\n class=\"dt-recipe--callbar-button-with-popover--popover-wrapper\"\n :dialog-class=\"['dt-recipe--callbar-button-with-popover--popover', contentClass]\"\n header-class=\"d-d-flex d-ai-center d-fw-normal d-px12\"\n v-bind=\"$attrs\"\n :open-popover=\"showPopover\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n circle\n importance=\"clear\"\n size=\"lg\"\n :class=\"['dt-recipe--callbar-button-with-popover--arrow',\n { 'dt-recipe--callbar-button-with-popover--arrow--large': !isCompactMode }]\"\n width=\"2rem\"\n :aria-label=\"arrowButtonLabel\"\n :active=\"open\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon\n name=\"chevron-up\"\n class=\"dt-recipe--callbar-button-with-popover--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n <template #headerContent>\n <slot name=\"headerContent\" />\n </template>\n <template #footerContent>\n <slot name=\"footerContent\" />\n </template>\n </dt-popover>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtIcon } from '@/components/icon';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithPopover',\n\n components: { DtRecipeCallbarButton, DtPopover, DtButton, DtIcon },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * The element that is focused when the popover is opened. This can be an\n * HTMLElement within the popover, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: String,\n default: 'first',\n },\n\n /**\n * Determines visibility for close button\n */\n showCloseButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Additional class name for the popover content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * To auto open the modal popover.\n */\n openPopover: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal popover is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showPopover () {\n if (!this.openPopover || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n methods: {\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openPopover;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the popover\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n\n<style lang=\"less\">\n.dt-recipe--callbar-button-with-popover--arrow {\n margin-top: var(--dt-space-350-negative);\n margin-left: calc(var(--dt-space-300-negative) * 5);\n width: var(--dt-size-500);\n height: var(--dt-size-500);\n padding: var(--dt-space-400);\n border-radius: var(--dt-size-300);\n\n &.d-btn--active {\n background: var(--dt-color-surface-moderate-opaque);\n }\n\n &--large {\n margin-left: var(--dt-space-550-negative);\n }\n\n &__icon {\n color: var(--dt-color-black-800);\n }\n}\n\n.dt-recipe--callbar-button-with-popover--popover {\n .d-popover__header {\n background: var(--dt-color-surface-contrast);\n color: var(--dt-color-foreground-primary-inverted);\n\n .d-btn {\n color: var(--dt-color-foreground-primary-inverted);\n }\n }\n}\n\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected::after,\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected:hover::after {\n --tab--bgc: var(--dt-color-surface-contrast);\n}\n.dt-recipe--callbar-button-with-popover--button .tab-group {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dt-recipe--callbar-button-with-popover--button .tab-content {\n flex: 1 1 100%;\n overflow-y: auto;\n}\n\n.dt-recipe--callbar-button-with-popover {\n display: flex;\n align-items: center;\n}\n</style>\n"],"names":["_sfc_main","DtRecipeCallbarButton","DtPopover","DtButton","DtIcon","utils","label","this","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","ev","isOpened","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_dt_recipe_callbar_button","$props","$options","_renderSlot","_ctx","_createBlock","_component_dt_popover","_mergeProps","$data","_component_dt_button","_normalizeClass","_component_dt_icon"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import m from "./utils.js";
2
- import { resolveComponent as a, openBlock as s, createElementBlock as b, createVNode as i, withCtx as o, renderSlot as r, createBlock as h, mergeProps as f, normalizeClass as w, createCommentVNode as v } from "vue";
2
+ import { resolveComponent as a, openBlock as s, createElementBlock as b, createVNode as l, withCtx as o, renderSlot as r, createBlock as h, mergeProps as f, normalizeClass as w, createCommentVNode as v } from "vue";
3
3
  import { _ as C } from "../chunks/_plugin-vue_export-helper-hUChTQA_.js";
4
4
  import { DtRecipeCallbarButton as _, CALLBAR_BUTTON_VALID_WIDTH_SIZE as g } from "./callbar-button.js";
5
5
  import { DtPopover as y } from "./popover.js";
@@ -16,7 +16,6 @@ import "../chunks/link_constants-vIUB92L4.js";
16
16
  import "@dialpad/dialtone-icons/vue3";
17
17
  import "../chunks/icon_constants-OpYAAKwF.js";
18
18
  import "@dialpad/dialtone-icons/icons.json";
19
- import "./skeleton.js";
20
19
  const k = {
21
20
  name: "DtRecipeCallbarButtonWithPopover",
22
21
  components: { DtRecipeCallbarButton: _, DtPopover: y, DtButton: B, DtIcon: S },
@@ -220,10 +219,10 @@ const k = {
220
219
  }
221
220
  }
222
221
  }, O = { class: "dt-recipe--callbar-button-with-popover" };
223
- function A(t, z, e, P, l, n) {
222
+ function A(t, z, e, P, i, n) {
224
223
  const c = a("dt-recipe-callbar-button"), p = a("dt-icon"), d = a("dt-button"), u = a("dt-popover");
225
224
  return s(), b("div", O, [
226
- i(c, {
225
+ l(c, {
227
226
  "aria-label": e.ariaLabel,
228
227
  disabled: e.disabled,
229
228
  active: e.active,
@@ -249,7 +248,7 @@ function A(t, z, e, P, l, n) {
249
248
  key: 0,
250
249
  id: e.id,
251
250
  modal: !1,
252
- open: l.open,
251
+ open: i.open,
253
252
  placement: e.placement,
254
253
  "initial-focus-element": e.initialFocusElement,
255
254
  "show-close-button": e.showCloseButton,
@@ -263,7 +262,7 @@ function A(t, z, e, P, l, n) {
263
262
  onOpened: n.onModalIsOpened
264
263
  }), {
265
264
  anchor: o(() => [
266
- i(d, {
265
+ l(d, {
267
266
  circle: "",
268
267
  importance: "clear",
269
268
  size: "lg",
@@ -273,11 +272,11 @@ function A(t, z, e, P, l, n) {
273
272
  ]),
274
273
  width: "2rem",
275
274
  "aria-label": e.arrowButtonLabel,
276
- active: l.open,
275
+ active: i.open,
277
276
  onClick: n.arrowClick
278
277
  }, {
279
278
  icon: o(() => [
280
- i(p, {
279
+ l(p, {
281
280
  name: "chevron-up",
282
281
  class: "dt-recipe--callbar-button-with-popover--arrow__icon",
283
282
  size: "200"
@@ -299,8 +298,8 @@ function A(t, z, e, P, l, n) {
299
298
  }, 16, ["id", "open", "placement", "initial-focus-element", "show-close-button", "dialog-class", "open-popover", "onOpened"])) : v("", !0)
300
299
  ]);
301
300
  }
302
- const K = /* @__PURE__ */ C(k, [["render", A]]);
301
+ const J = /* @__PURE__ */ C(k, [["render", A]]);
303
302
  export {
304
- K as DtRecipeCallbarButtonWithPopover
303
+ J as DtRecipeCallbarButtonWithPopover
305
304
  };
306
305
  //# sourceMappingURL=callbar-button-with-popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callbar-button-with-popover.js","sources":["../../recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-popover\"\n >\n <dt-recipe-callbar-button\n :aria-label=\"ariaLabel\"\n :disabled=\"disabled\"\n :active=\"active\"\n :danger=\"danger\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :text-class=\"textClass\"\n class=\"dt-recipe--callbar-button-with-popover--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-popover\n v-if=\"showArrowButton\"\n :id=\"id\"\n :modal=\"false\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"initialFocusElement\"\n :show-close-button=\"showCloseButton\"\n :offset=\"[0, 16]\"\n padding=\"none\"\n class=\"dt-recipe--callbar-button-with-popover--popover-wrapper\"\n :dialog-class=\"['dt-recipe--callbar-button-with-popover--popover', contentClass]\"\n header-class=\"d-d-flex d-ai-center d-fw-normal d-px12\"\n v-bind=\"$attrs\"\n :open-popover=\"showPopover\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n circle\n importance=\"clear\"\n size=\"lg\"\n :class=\"['dt-recipe--callbar-button-with-popover--arrow',\n { 'dt-recipe--callbar-button-with-popover--arrow--large': !isCompactMode }]\"\n width=\"2rem\"\n :aria-label=\"arrowButtonLabel\"\n :active=\"open\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon\n name=\"chevron-up\"\n class=\"dt-recipe--callbar-button-with-popover--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n <template #headerContent>\n <slot name=\"headerContent\" />\n </template>\n <template #footerContent>\n <slot name=\"footerContent\" />\n </template>\n </dt-popover>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtIcon } from '@/components/icon';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithPopover',\n\n components: { DtRecipeCallbarButton, DtPopover, DtButton, DtIcon },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * The element that is focused when the popover is opened. This can be an\n * HTMLElement within the popover, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: String,\n default: 'first',\n },\n\n /**\n * Determines visibility for close button\n */\n showCloseButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Additional class name for the popover content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * To auto open the modal popover.\n */\n openPopover: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal popover is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showPopover () {\n if (!this.openPopover || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n methods: {\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openPopover;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the popover\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n\n<style lang=\"less\">\n.dt-recipe--callbar-button-with-popover--arrow {\n margin-top: var(--dt-space-350-negative);\n margin-left: calc(var(--dt-space-300-negative) * 5);\n width: var(--dt-size-500);\n height: var(--dt-size-500);\n padding: var(--dt-space-400);\n border-radius: var(--dt-size-300);\n\n &.d-btn--active {\n background: var(--dt-color-surface-moderate-opaque);\n }\n\n &--large {\n margin-left: var(--dt-space-550-negative);\n }\n\n &__icon {\n color: var(--dt-color-black-800);\n }\n}\n\n.dt-recipe--callbar-button-with-popover--popover {\n .d-popover__header {\n background: var(--dt-color-surface-contrast);\n color: var(--dt-color-foreground-primary-inverted);\n\n .d-btn {\n color: var(--dt-color-foreground-primary-inverted);\n }\n }\n}\n\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected::after,\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected:hover::after {\n --tab--bgc: var(--dt-color-surface-contrast);\n}\n.dt-recipe--callbar-button-with-popover--button .tab-group {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dt-recipe--callbar-button-with-popover--button .tab-content {\n flex: 1 1 100%;\n overflow-y: auto;\n}\n\n.dt-recipe--callbar-button-with-popover {\n display: flex;\n align-items: center;\n}\n</style>\n"],"names":["_sfc_main","DtRecipeCallbarButton","DtPopover","DtButton","DtIcon","utils","label","this","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","ev","isOpened","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_dt_recipe_callbar_button","$props","$options","_renderSlot","_ctx","_createBlock","_component_dt_popover","_mergeProps","$data","_component_dt_button","_normalizeClass","_component_dt_icon"],"mappings":"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"}
1
+ {"version":3,"file":"callbar-button-with-popover.js","sources":["../../recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue"],"sourcesContent":["<template>\n <div\n class=\"dt-recipe--callbar-button-with-popover\"\n >\n <dt-recipe-callbar-button\n :aria-label=\"ariaLabel\"\n :disabled=\"disabled\"\n :active=\"active\"\n :danger=\"danger\"\n :button-class=\"buttonClass\"\n :button-width-size=\"buttonWidthSize\"\n :text-class=\"textClass\"\n class=\"dt-recipe--callbar-button-with-popover--main-button\"\n @click=\"buttonClick\"\n >\n <template #icon>\n <slot name=\"icon\" />\n </template>\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n <slot />\n </dt-recipe-callbar-button>\n <dt-popover\n v-if=\"showArrowButton\"\n :id=\"id\"\n :modal=\"false\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"initialFocusElement\"\n :show-close-button=\"showCloseButton\"\n :offset=\"[0, 16]\"\n padding=\"none\"\n class=\"dt-recipe--callbar-button-with-popover--popover-wrapper\"\n :dialog-class=\"['dt-recipe--callbar-button-with-popover--popover', contentClass]\"\n header-class=\"d-d-flex d-ai-center d-fw-normal d-px12\"\n v-bind=\"$attrs\"\n :open-popover=\"showPopover\"\n @opened=\"onModalIsOpened\"\n >\n <template #anchor>\n <dt-button\n circle\n importance=\"clear\"\n size=\"lg\"\n :class=\"['dt-recipe--callbar-button-with-popover--arrow',\n { 'dt-recipe--callbar-button-with-popover--arrow--large': !isCompactMode }]\"\n width=\"2rem\"\n :aria-label=\"arrowButtonLabel\"\n :active=\"open\"\n @click=\"arrowClick\"\n >\n <template #icon>\n <dt-icon\n name=\"chevron-up\"\n class=\"dt-recipe--callbar-button-with-popover--arrow__icon\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n <template #headerContent>\n <slot name=\"headerContent\" />\n </template>\n <template #footerContent>\n <slot name=\"footerContent\" />\n </template>\n </dt-popover>\n </div>\n</template>\n\n<script>\nimport { DtButton } from '@/components/button';\nimport { DtPopover } from '@/components/popover';\nimport { DtIcon } from '@/components/icon';\nimport { DtRecipeCallbarButton, CALLBAR_BUTTON_VALID_WIDTH_SIZE } from '../callbar_button';\nimport utils from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButtonWithPopover',\n\n components: { DtRecipeCallbarButton, DtPopover, DtButton, DtIcon },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Aria label for the arrow. Cannot be empty.\n */\n arrowButtonLabel: {\n type: String,\n required: true,\n validator: (label) => {\n return !!label;\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * @values 'bottom', 'bottom-start', 'bottom-end',\n * 'right', 'right-start', 'right-end',\n * 'left', 'left-start', 'left-end',\n * 'top', 'top-start', 'top-end'\n * @default 'top'\n */\n placement: {\n type: String,\n default: 'top',\n },\n\n /**\n * The element that is focused when the popover is opened. This can be an\n * HTMLElement within the popover, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: String,\n default: 'first',\n },\n\n /**\n * Determines visibility for close button\n */\n showCloseButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Forces showing the arrow, even if the button is disabled.\n * default is false\n * @values true, false\n */\n forceShowArrow: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * We need this declaration because of how Vue3 informs the component about a listener.\n * Spoiler alert: it doesn't.\n * Vue3 intends to work as a real pub-sub, meaning the publisher has not a clue of who the subscribers are.\n * This makes it impossible from the regular declaration (emits: ['click']) to check whether\n * we actually have a click handler or not.\n * We're hacking it by adding an onClick prop: https://github.com/vuejs/core/issues/5220\n */\n /* eslint-disable-next-line vue/no-unused-properties */\n onClick: {\n type: Function,\n default: null,\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * Additional class name for the popover content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * To auto open the modal popover.\n */\n openPopover: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Emitted when the arrow is clicked\n */\n 'arrow-click',\n\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Emitted when modal popover is opened or closed.\n */\n 'opened',\n ],\n\n data () {\n return {\n open: false,\n };\n },\n\n computed: {\n showArrowButton () {\n return this.forceShowArrow || !this.disabled;\n },\n\n isCompactMode () {\n return this.buttonWidthSize === 'sm' || this.buttonWidthSize === 'md';\n },\n\n showPopover () {\n if (!this.openPopover || this.open) {\n this.syncOpenState();\n return false;\n }\n\n return this.toggleOpen();\n },\n },\n\n methods: {\n arrowClick (ev) {\n this.$emit('arrow-click', ev);\n return this.toggleOpen();\n },\n\n toggleOpen () {\n return (this.open = !this.open);\n },\n\n syncOpenState () {\n this.open = this.openPopover;\n },\n\n buttonClick (ev) {\n // If no listener for the click event, the button click opens the popover\n // the same as if the arrow was clicked.\n if (!this.$props.onClick) {\n this.arrowClick(ev);\n } else {\n this.$emit('click', ev);\n }\n },\n\n onModalIsOpened (isOpened) {\n this.open = isOpened;\n this.$emit('opened', isOpened);\n },\n },\n\n};\n</script>\n\n<style lang=\"less\">\n.dt-recipe--callbar-button-with-popover--arrow {\n margin-top: var(--dt-space-350-negative);\n margin-left: calc(var(--dt-space-300-negative) * 5);\n width: var(--dt-size-500);\n height: var(--dt-size-500);\n padding: var(--dt-space-400);\n border-radius: var(--dt-size-300);\n\n &.d-btn--active {\n background: var(--dt-color-surface-moderate-opaque);\n }\n\n &--large {\n margin-left: var(--dt-space-550-negative);\n }\n\n &__icon {\n color: var(--dt-color-black-800);\n }\n}\n\n.dt-recipe--callbar-button-with-popover--popover {\n .d-popover__header {\n background: var(--dt-color-surface-contrast);\n color: var(--dt-color-foreground-primary-inverted);\n\n .d-btn {\n color: var(--dt-color-foreground-primary-inverted);\n }\n }\n}\n\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected::after,\n.dt-recipe--callbar-button-with-popover--button .d-tab--selected:hover::after {\n --tab--bgc: var(--dt-color-surface-contrast);\n}\n.dt-recipe--callbar-button-with-popover--button .tab-group {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dt-recipe--callbar-button-with-popover--button .tab-content {\n flex: 1 1 100%;\n overflow-y: auto;\n}\n\n.dt-recipe--callbar-button-with-popover {\n display: flex;\n align-items: center;\n}\n</style>\n"],"names":["_sfc_main","DtRecipeCallbarButton","DtPopover","DtButton","DtIcon","utils","label","this","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","ev","isOpened","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_dt_recipe_callbar_button","$props","$options","_renderSlot","_ctx","_createBlock","_component_dt_popover","_mergeProps","$data","_component_dt_button","_normalizeClass","_component_dt_icon"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./utils.cjs"),t=require("vue"),s=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js"),d=require("./button.cjs"),c=require("./tooltip.cjs");require("./constants.cjs");require("../chunks/link_constants-Kn6kP4i1.js");require("../chunks/popover_constants-hOEhklvr.js");require("tippy.js");require("./lazy-show.cjs");const i=["sm","md","lg","xl"],u={name:"DtRecipeCallbarButton",components:{DtButton:d.DtButton,DtTooltip:c.DtTooltip},inheritAttrs:!1,props:{id:{type:String,default(){return l.default.getUniqueString()}},active:{type:Boolean,default:!1},danger:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},ariaLabel:{type:String,default:null,validator:e=>e||(void 0).$slots.default},buttonClass:{type:[String,Array,Object],default:""},textClass:{type:[String,Array,Object],default:""},buttonWidthSize:{type:String,default:"xl",validator:e=>i.includes(e)},importance:{type:String,default:""}},emits:["click"],computed:{callbarButtonClass(){return[this.buttonClass,"dt-recipe-callbar-button","d-px0",{"dt-recipe-callbar-button--circle":this.circle,"dt-recipe-callbar-button--active":this.active,"dt-recipe-callbar-button--danger":this.danger,"d-btn--disabled d-bgc-transparent":this.disabled,"d-fc-primary":!this.disabled}]},callbarButtonTextClass(){return["d-fs-100 lg:d-d-none md:d-d-none sm:d-d-none",this.textClass]},buttonWidth(){switch(this.buttonWidthSize){case"sm":return"4.5rem";case"md":return"6rem";default:return"8.4rem"}},buttonImportance(){return this.importance?this.importance:this.circle?"outlined":"clear"},callbarButtonListeners(){return{...l.extractVueListeners(this.$attrs),click:e=>this.$emit("click",e)}}}};function b(e,m,r,f,h,a){const n=t.resolveComponent("dt-button"),o=t.resolveComponent("dt-tooltip");return t.openBlock(),t.createBlock(o,{id:r.id,offset:[0,8]},{anchor:t.withCtx(()=>[t.createElementVNode("span",{class:t.normalizeClass({"dt-recipe-callbar-button--disabled":r.disabled})},[t.createVNode(n,t.mergeProps({importance:a.buttonImportance,kind:"muted","icon-position":"top","aria-disabled":r.disabled,"aria-label":r.ariaLabel,"label-class":a.callbarButtonTextClass,width:a.buttonWidth,class:a.callbarButtonClass},e.$attrs,t.toHandlers(a.callbarButtonListeners)),{icon:t.withCtx(()=>[t.renderSlot(e.$slots,"icon")]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},16,["importance","aria-disabled","aria-label","label-class","width","class"])],2)]),default:t.withCtx(()=>[t.renderSlot(e.$slots,"tooltip")]),_:3},8,["id"])}const p=s._(u,[["render",b]]);exports.CALLBAR_BUTTON_VALID_WIDTH_SIZE=i;exports.DtRecipeCallbarButton=p;
2
+ //# sourceMappingURL=callbar-button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbar-button.cjs","sources":["../../recipes/buttons/callbar_button/callbar_button_constants.js","../../recipes/buttons/callbar_button/callbar_button.vue"],"sourcesContent":["export const CALLBAR_BUTTON_VALID_WIDTH_SIZE = ['sm', 'md', 'lg', 'xl'];\n\nexport default {\n CALLBAR_BUTTON_VALID_WIDTH_SIZE,\n};\n","<template>\n <dt-tooltip\n :id=\"id\"\n :offset=\"[0, 8]\"\n >\n <template #anchor>\n <span\n :class=\"{ 'dt-recipe-callbar-button--disabled': disabled }\"\n >\n <dt-button\n :importance=\"buttonImportance\"\n kind=\"muted\"\n icon-position=\"top\"\n :aria-disabled=\"disabled\"\n :aria-label=\"ariaLabel\"\n :label-class=\"callbarButtonTextClass\"\n :width=\"buttonWidth\"\n :class=\"callbarButtonClass\"\n v-bind=\"$attrs\"\n v-on=\"callbarButtonListeners\"\n >\n <slot />\n <template #icon>\n <slot name=\"icon\" />\n </template>\n </dt-button>\n </span>\n </template>\n <slot name=\"tooltip\" />\n </dt-tooltip>\n</template>\n\n<script>\nimport { CALLBAR_BUTTON_VALID_WIDTH_SIZE } from './callbar_button_constants';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport utils, { extractVueListeners } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeCallbarButton',\n\n components: { DtButton, DtTooltip },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Id for the item.\n */\n id: {\n type: String,\n default () {\n return utils.getUniqueString();\n },\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have danger styling\n * default is false.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n danger: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should be disabled\n * default is false.\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the button is a circle or not.\n * @values true, false\n * @see https://dialtone.dialpad.com/components/button/\n */\n circle: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Aria label for the button. If empty, it takes its value from the default slot.\n */\n ariaLabel: {\n type: String,\n default: null,\n validator: (label) => {\n return label || this.$slots.default;\n },\n },\n\n /**\n * Additional class name for the button wrapper element.\n */\n buttonClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the button text.\n */\n textClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /*\n * Width size. Valid values are: 'xl', 'lg', 'md' and 'sm'.\n */\n buttonWidthSize: {\n type: String,\n default: 'xl',\n validator: size => CALLBAR_BUTTON_VALID_WIDTH_SIZE.includes(size),\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: '',\n },\n\n },\n\n emits: [\n /**\n * Native click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n callbarButtonClass () {\n return [\n this.buttonClass,\n 'dt-recipe-callbar-button',\n 'd-px0',\n {\n 'dt-recipe-callbar-button--circle': this.circle,\n 'dt-recipe-callbar-button--active': this.active,\n 'dt-recipe-callbar-button--danger': this.danger,\n 'd-btn--disabled d-bgc-transparent': this.disabled,\n 'd-fc-primary': !this.disabled,\n }];\n },\n\n callbarButtonTextClass () {\n return [\n 'd-fs-100 lg:d-d-none md:d-d-none sm:d-d-none',\n this.textClass,\n ];\n },\n\n buttonWidth () {\n switch (this.buttonWidthSize) {\n case 'sm':\n return '4.5rem';\n case 'md':\n return '6rem';\n default:\n return '8.4rem';\n }\n },\n\n buttonImportance () {\n if (this.importance) {\n return this.importance;\n }\n return this.circle ? 'outlined' : 'clear';\n },\n\n callbarButtonListeners () {\n return {\n ...extractVueListeners(this.$attrs),\n click: (event) => this.$emit('click', event),\n };\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-recipe-callbar-button:not(.dt-recipe-callbar-button--circle) {\n line-height: var(--dt-font-line-height-300);\n}\n\n.dt-recipe-callbar-button--circle {\n border-radius: var(--dt-size-radius-circle);\n}\n\n.dt-recipe-callbar-button.d-btn[disabled] {\n background-color: unset;\n opacity: .5;\n}\n\n.dt-recipe-callbar-button--circle.d-btn[disabled] {\n border-color: unset;\n}\n\n.dt-recipe-callbar-button--active,\n.dt-recipe-callbar-button--active:hover {\n .base-button__icon {\n color: var(--primary-color);\n }\n}\n\n.dt-recipe-callbar-button--disabled {\n cursor: not-allowed;\n}\n</style>\n"],"names":["CALLBAR_BUTTON_VALID_WIDTH_SIZE","_sfc_main","DtButton","DtTooltip","utils","label","this","size","extractVueListeners","event","_createBlock","_component_dt_tooltip","$props","_createElementVNode","_createVNode","_component_dt_button","_mergeProps","$options","_ctx","_toHandlers","_renderSlot"],"mappings":"+ZAAY,MAACA,EAAkC,CAAC,KAAM,KAAM,KAAM,IAAI,ECsCjEC,EAAU,CACb,KAAM,wBAEN,WAAY,CAAA,SAAEC,EAAQ,SAAA,UAAEC,WAAW,EAEnC,aAAc,GAEd,MAAO,CAIL,GAAI,CACF,KAAM,OACN,SAAW,CACT,OAAOC,EAAAA,QAAM,iBACd,CACF,EAQD,OAAQ,CACN,KAAM,QACN,QAAS,EACV,EAQD,OAAQ,CACN,KAAM,QACN,QAAS,EACV,EAOD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAOD,OAAQ,CACN,KAAM,QACN,QAAS,EACV,EAKD,UAAW,CACT,KAAM,OACN,QAAS,KACT,UAAYC,GACHA,GAASC,SAAK,OAAO,OAE/B,EAKD,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,UAAW,CACT,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,gBAAiB,CACf,KAAM,OACN,QAAS,KACT,UAAWC,GAAQP,EAAgC,SAASO,CAAI,CACjE,EAMD,WAAY,CACV,KAAM,OACN,QAAS,EACV,CAEF,EAED,MAAO,CAOL,OACD,EAED,SAAU,CACR,oBAAsB,CACpB,MAAO,CACL,KAAK,YACL,2BACA,QACA,CACE,mCAAoC,KAAK,OACzC,mCAAoC,KAAK,OACzC,mCAAoC,KAAK,OACzC,oCAAqC,KAAK,SAC1C,eAAgB,CAAC,KAAK,QACxB,CAAC,CACJ,EAED,wBAA0B,CACxB,MAAO,CACL,+CACA,KAAK,UAER,EAED,aAAe,CACb,OAAQ,KAAK,gBAAe,CAC1B,IAAK,KACH,MAAO,SACT,IAAK,KACH,MAAO,OACT,QACE,MAAO,QACX,CACD,EAED,kBAAoB,CAClB,OAAI,KAAK,WACA,KAAK,WAEP,KAAK,OAAS,WAAa,OACnC,EAED,wBAA0B,CACxB,MAAO,CACL,GAAGC,EAAmB,oBAAC,KAAK,MAAM,EAClC,MAAQC,GAAU,KAAK,MAAM,QAASA,CAAK,EAE9C,CACF,CACH,0HAzMEC,EA4Ba,YAAAC,EAAA,CA3BV,GAAIC,EAAE,GACN,OAAQ,CAAM,EAAA,CAAA,IAEJ,iBACT,IAoBO,CApBPC,EAAAA,mBAoBO,OAAA,CAnBJ,6DAA+CD,EAAQ,QAAA,CAAA,IAExDE,EAAA,YAgBYC,EAhBZC,aAgBY,CAfT,WAAYC,EAAgB,iBAC7B,KAAK,QACL,gBAAc,MACb,gBAAeL,EAAQ,SACvB,aAAYA,EAAS,UACrB,cAAaK,EAAsB,uBACnC,MAAOA,EAAW,YAClB,MAAOA,EAAkB,oBAClBC,EAAM,OACdC,EAAAA,WAA6BF,EAAD,sBAAA,CAAA,EAAA,CAGjB,eACT,IAAoB,CAApBG,aAAoBF,EAAA,OAAA,MAAA,sBAFtB,IAAQ,CAARE,aAAQF,EAAA,OAAA,SAAA,+GAOd,IAAuB,CAAvBE,aAAuBF,EAAA,OAAA,SAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./avatar.cjs"),n=require("./badge.cjs"),e=require("vue"),s=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js");require("./utils.cjs");require("./constants.cjs");require("@dialpad/dialtone-icons/icons.json");require("../chunks/icon_constants-2S_OSQ1t.js");require("./presence.cjs");require("./icon.cjs");require("@dialpad/dialtone-icons/vue3");const o={warning:"dt-recipe-callbox-badge--warning"},r={default:"dt-recipe-callbox--border-default",ai:"dt-recipe-callbox--border-ai",critical:"dt-recipe-callbox--border-critical"},u={name:"DtRecipeCallbox",components:{DtBadge:n.DtBadge,DtAvatar:d.DtAvatar},inheritAttrs:!1,props:{badgeText:{type:String,default:""},badgeColor:{type:String,default:null,validator:t=>t===null||Object.keys(o).includes(t)},avatarSrc:{type:String,default:""},avatarFullName:{type:String,default:""},avatarSeed:{type:String,default:""},title:{type:String,default:""},borderColor:{type:String,default:"default",validator:t=>Object.keys(r).includes(t)},clickable:{type:Boolean,default:!1},isOnHold:{type:Boolean,default:!1}},emits:["click"],computed:{shouldShowAvatar(){return this.avatarFullName||this.avatarSrc},badgeClass(){return o[this.badgeColor]},borderClass(){return r[this.borderColor]}},methods:{handleClick(t){this.clickable&&this.$emit("click",t)}}},b={"data-qa":"dt-recipe-callbox",class:"dt-recipe-callbox"},m={key:0,"data-qa":"dt-recipe-callbox--video-wrapper",class:"dt-recipe-callbox--video"},p={class:"dt-recipe-callbox--main-content-top"},k={class:"dt-recipe-callbox--content"},v={key:0,"data-qa":"dt-recipe-callbox--badge-wrapper",class:"dt-recipe-callbox--content-badge"},g={key:1,"data-qa":"dt-recipe-callbox--subtitle-wrapper",class:"dt-recipe-callbox--content-subtitle"},C={key:1,"data-qa":"dt-recipe-callbox--right-wrapper",class:"dt-recipe-callbox--right"},_={key:0,"data-qa":"dt-recipe-callbox--bottom-wrapper",class:"dt-recipe-callbox--main-content-bottom"};function f(t,B,a,x,S,l){const c=e.resolveComponent("dt-avatar"),i=e.resolveComponent("dt-badge");return e.openBlock(),e.createElementBlock("div",b,[t.$slots.video?(e.openBlock(),e.createElementBlock("div",m,[e.renderSlot(t.$slots,"video",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{"data-qa":"dt-recipe-callbox--main-content",class:e.normalizeClass(["dt-recipe-callbox--main-content",l.borderClass,{"dt-recipe-callbox--clickable":a.clickable}])},[e.createElementVNode("div",p,[l.shouldShowAvatar?(e.openBlock(),e.createBlock(c,{key:0,"avatar-class":"dt-recipe-callbox--avatar","image-src":a.avatarSrc,"image-alt":"","full-name":a.avatarFullName,seed:a.avatarSeed,clickable:a.clickable,"overlay-icon":a.isOnHold?"pause":null,size:"sm",onClick:l.handleClick},null,8,["image-src","full-name","seed","clickable","overlay-icon","onClick"])):e.createCommentVNode("",!0),e.createElementVNode("div",k,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.clickable?"button":"span"),{"data-qa":"dt-recipe-callbox--title",class:"dt-recipe-callbox--content-title",onClick:l.handleClick},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.title),1)]),_:1},8,["onClick"])),t.$slots.badge||a.badgeText?(e.openBlock(),e.createElementBlock("div",v,[e.renderSlot(t.$slots,"badge",{},()=>[e.createVNode(i,{class:e.normalizeClass(l.badgeClass),text:a.badgeText},null,8,["class","text"])],!0)])):e.createCommentVNode("",!0),t.$slots.subtitle?(e.openBlock(),e.createElementBlock("div",g,[e.renderSlot(t.$slots,"subtitle",{},void 0,!0)])):e.createCommentVNode("",!0)]),t.$slots.right?(e.openBlock(),e.createElementBlock("div",C,[e.renderSlot(t.$slots,"right",{},void 0,!0)])):e.createCommentVNode("",!0)]),t.$slots.bottom?(e.openBlock(),e.createElementBlock("div",_,[e.renderSlot(t.$slots,"bottom",{},void 0,!0)])):e.createCommentVNode("",!0)],2)])}const h=s._(u,[["render",f],["__scopeId","data-v-ef08f46e"]]);exports.CALLBOX_BADGE_COLORS=o;exports.CALLBOX_BORDER_COLORS=r;exports.DtRecipeCallbox=h;
2
+ //# sourceMappingURL=callbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbox.cjs","sources":["../../recipes/leftbar/callbox/callbox_constants.js","../../recipes/leftbar/callbox/callbox.vue"],"sourcesContent":["export const CALLBOX_BADGE_COLORS = {\n warning: 'dt-recipe-callbox-badge--warning',\n};\n\nexport const CALLBOX_BORDER_COLORS = {\n default: 'dt-recipe-callbox--border-default',\n ai: 'dt-recipe-callbox--border-ai',\n critical: 'dt-recipe-callbox--border-critical',\n};\n\nexport default {\n CALLBOX_BADGE_COLORS,\n CALLBOX_BORDER_COLORS,\n};\n","<template>\n <div\n data-qa=\"dt-recipe-callbox\"\n class=\"dt-recipe-callbox\"\n >\n <div\n v-if=\"$slots.video\"\n data-qa=\"dt-recipe-callbox--video-wrapper\"\n class=\"dt-recipe-callbox--video\"\n >\n <!-- @slot Slot for video stream -->\n <slot name=\"video\" />\n </div>\n <div\n data-qa=\"dt-recipe-callbox--main-content\"\n :class=\"['dt-recipe-callbox--main-content', borderClass, { 'dt-recipe-callbox--clickable': clickable }]\"\n >\n <div\n class=\"dt-recipe-callbox--main-content-top\"\n >\n <dt-avatar\n v-if=\"shouldShowAvatar\"\n avatar-class=\"dt-recipe-callbox--avatar\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :full-name=\"avatarFullName\"\n :seed=\"avatarSeed\"\n :clickable=\"clickable\"\n :overlay-icon=\"isOnHold ? 'pause' : null\"\n size=\"sm\"\n @click=\"handleClick\"\n />\n <div class=\"dt-recipe-callbox--content\">\n <component\n :is=\"clickable ? 'button' : 'span'\"\n data-qa=\"dt-recipe-callbox--title\"\n class=\"dt-recipe-callbox--content-title\"\n @click=\"handleClick\"\n >\n {{ title }}\n </component>\n <div\n v-if=\"$slots.badge || badgeText\"\n data-qa=\"dt-recipe-callbox--badge-wrapper\"\n class=\"dt-recipe-callbox--content-badge\"\n >\n <!-- @slot Slot for call center badge -->\n <slot name=\"badge\">\n <dt-badge\n :class=\"badgeClass\"\n :text=\"badgeText\"\n />\n </slot>\n </div>\n <div\n v-if=\"$slots.subtitle\"\n data-qa=\"dt-recipe-callbox--subtitle-wrapper\"\n class=\"dt-recipe-callbox--content-subtitle\"\n >\n <!-- @slot Slot for subtitle -->\n <slot name=\"subtitle\" />\n </div>\n </div>\n <div\n v-if=\"$slots.right\"\n data-qa=\"dt-recipe-callbox--right-wrapper\"\n class=\"dt-recipe-callbox--right\"\n >\n <!-- @slot Slot for right icons -->\n <slot name=\"right\" />\n </div>\n </div>\n <div\n v-if=\"$slots.bottom\"\n data-qa=\"dt-recipe-callbox--bottom-wrapper\"\n class=\"dt-recipe-callbox--main-content-bottom\"\n >\n <slot name=\"bottom\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from './callbox_constants';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport DtBadge from '@/components/badge/badge.vue';\n\nexport default {\n name: 'DtRecipeCallbox',\n\n components: { DtBadge, DtAvatar },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Text for the badge element\n */\n badgeText: {\n type: String,\n default: '',\n },\n\n /**\n * Color for the badge element\n * @values null, warning\n */\n badgeColor: {\n type: String,\n default: null,\n validator: (color) => color === null || Object.keys(CALLBOX_BADGE_COLORS).includes(color),\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display if `avatarSrc` is empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox title\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(CALLBOX_BORDER_COLORS).includes(color),\n },\n\n /**\n * Makes the callbox avatar and title clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls the avatars overlay icon\n */\n isOnHold: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Callbox click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n shouldShowAvatar () {\n return this.avatarFullName || this.avatarSrc;\n },\n\n badgeClass () {\n return CALLBOX_BADGE_COLORS[this.badgeColor];\n },\n\n borderClass () {\n return CALLBOX_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-callbox {\n padding: 0;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n border-radius: var(--dt-size-radius-300);\n\n &--video {\n display: flex;\n border-radius: var(--dt-size-radius-200) var(--dt-size-radius-200) 0 0;\n overflow: clip;\n margin-bottom: var(--dt-space-300-negative);\n }\n\n &--main-content {\n padding: 0;\n border-radius: var(--dt-size-radius-300);\n border: var(--dt-size-border-100) solid transparent;\n align-items: stretch;\n\n &.dt-recipe-callbox--border-default {\n border-color: var(--dt-color-border-default);\n }\n\n &.dt-recipe-callbox--border-ai {\n background:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n linear-gradient(135deg, var(--dt-color-border-accent), var(--dt-color-border-brand)) border-box;\n }\n\n &.dt-recipe-callbox--border-critical {\n background:\n radial-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n radial-gradient(circle, #E7301D, #F78B23) border-box;\n }\n\n &-top {\n display: flex;\n align-items: center;\n padding: var(--dt-space-350) var(--dt-space-400);\n }\n\n &-bottom {\n border-top: 1px solid var(--dt-color-border-subtle);\n }\n }\n\n &--avatar {\n margin-right: var(--dt-space-400);\n }\n\n &--content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n min-width: 0;\n\n &-title {\n overflow: clip;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n font-weight: var(--dt-font-weight-bold);\n border: none;\n padding: 0;\n width: 0;\n min-width: 100%;\n text-align: left;\n user-select: text;\n line-height: normal;\n }\n\n &-badge {\n line-height: normal;\n }\n\n &-subtitle {\n padding: 0;\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n line-height: normal;\n overflow: hidden;\n width: 0;\n min-width: 100%;\n }\n }\n\n &--right {\n display: flex;\n justify-content: right;\n }\n\n &--clickable {\n .dt-recipe-callbox--content-title {\n cursor: pointer;\n user-select: none;\n border-radius: var(--dt-size-100);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover, &:active {\n text-decoration: underline;\n }\n }\n }\n\n .dt-recipe-callbox-badge--warning {\n background-color: var(--dt-color-surface-warning);\n }\n}\n</style>\n"],"names":["CALLBOX_BADGE_COLORS","CALLBOX_BORDER_COLORS","_sfc_main","DtBadge","DtAvatar","color","e","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_hoisted_1","_ctx","_hoisted_2","_renderSlot","_createElementVNode","_normalizeClass","$options","$props","_createBlock","_component_dt_avatar","_resolveDynamicComponent","_hoisted_5","_createVNode","_component_dt_badge","_hoisted_6","_hoisted_7","_hoisted_8"],"mappings":"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"}
@@ -9,7 +9,6 @@ import "../chunks/icon_constants-OpYAAKwF.js";
9
9
  import "./presence.js";
10
10
  import "./icon.js";
11
11
  import "@dialpad/dialtone-icons/vue3";
12
- import "./skeleton.js";
13
12
  const b = {
14
13
  warning: "dt-recipe-callbox-badge--warning"
15
14
  }, u = {
@@ -197,10 +196,10 @@ function L(e, R, t, E, T, c) {
197
196
  ], 2)
198
197
  ]);
199
198
  }
200
- const Q = /* @__PURE__ */ C(y, [["render", L], ["__scopeId", "data-v-ef08f46e"]]);
199
+ const P = /* @__PURE__ */ C(y, [["render", L], ["__scopeId", "data-v-ef08f46e"]]);
201
200
  export {
202
201
  b as CALLBOX_BADGE_COLORS,
203
202
  u as CALLBOX_BORDER_COLORS,
204
- Q as DtRecipeCallbox
203
+ P as DtRecipeCallbox
205
204
  };
206
205
  //# sourceMappingURL=callbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callbox.js","sources":["../../recipes/leftbar/callbox/callbox_constants.js","../../recipes/leftbar/callbox/callbox.vue"],"sourcesContent":["export const CALLBOX_BADGE_COLORS = {\n warning: 'dt-recipe-callbox-badge--warning',\n};\n\nexport const CALLBOX_BORDER_COLORS = {\n default: 'dt-recipe-callbox--border-default',\n ai: 'dt-recipe-callbox--border-ai',\n critical: 'dt-recipe-callbox--border-critical',\n};\n\nexport default {\n CALLBOX_BADGE_COLORS,\n CALLBOX_BORDER_COLORS,\n};\n","<template>\n <div\n data-qa=\"dt-recipe-callbox\"\n class=\"dt-recipe-callbox\"\n >\n <div\n v-if=\"$slots.video\"\n data-qa=\"dt-recipe-callbox--video-wrapper\"\n class=\"dt-recipe-callbox--video\"\n >\n <!-- @slot Slot for video stream -->\n <slot name=\"video\" />\n </div>\n <div\n data-qa=\"dt-recipe-callbox--main-content\"\n :class=\"['dt-recipe-callbox--main-content', borderClass, { 'dt-recipe-callbox--clickable': clickable }]\"\n >\n <div\n class=\"dt-recipe-callbox--main-content-top\"\n >\n <dt-avatar\n v-if=\"shouldShowAvatar\"\n avatar-class=\"dt-recipe-callbox--avatar\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :full-name=\"avatarFullName\"\n :seed=\"avatarSeed\"\n :clickable=\"clickable\"\n :overlay-icon=\"isOnHold ? 'pause' : null\"\n size=\"sm\"\n @click=\"handleClick\"\n />\n <div class=\"dt-recipe-callbox--content\">\n <component\n :is=\"clickable ? 'button' : 'span'\"\n data-qa=\"dt-recipe-callbox--title\"\n class=\"dt-recipe-callbox--content-title\"\n @click=\"handleClick\"\n >\n {{ title }}\n </component>\n <div\n v-if=\"$slots.badge || badgeText\"\n data-qa=\"dt-recipe-callbox--badge-wrapper\"\n class=\"dt-recipe-callbox--content-badge\"\n >\n <!-- @slot Slot for call center badge -->\n <slot name=\"badge\">\n <dt-badge\n :class=\"badgeClass\"\n :text=\"badgeText\"\n />\n </slot>\n </div>\n <div\n v-if=\"$slots.subtitle\"\n data-qa=\"dt-recipe-callbox--subtitle-wrapper\"\n class=\"dt-recipe-callbox--content-subtitle\"\n >\n <!-- @slot Slot for subtitle -->\n <slot name=\"subtitle\" />\n </div>\n </div>\n <div\n v-if=\"$slots.right\"\n data-qa=\"dt-recipe-callbox--right-wrapper\"\n class=\"dt-recipe-callbox--right\"\n >\n <!-- @slot Slot for right icons -->\n <slot name=\"right\" />\n </div>\n </div>\n <div\n v-if=\"$slots.bottom\"\n data-qa=\"dt-recipe-callbox--bottom-wrapper\"\n class=\"dt-recipe-callbox--main-content-bottom\"\n >\n <slot name=\"bottom\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from './callbox_constants';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport DtBadge from '@/components/badge/badge.vue';\n\nexport default {\n name: 'DtRecipeCallbox',\n\n components: { DtBadge, DtAvatar },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Text for the badge element\n */\n badgeText: {\n type: String,\n default: '',\n },\n\n /**\n * Color for the badge element\n * @values null, warning\n */\n badgeColor: {\n type: String,\n default: null,\n validator: (color) => color === null || Object.keys(CALLBOX_BADGE_COLORS).includes(color),\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display if `avatarSrc` is empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox title\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(CALLBOX_BORDER_COLORS).includes(color),\n },\n\n /**\n * Makes the callbox avatar and title clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls the avatars overlay icon\n */\n isOnHold: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Callbox click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n shouldShowAvatar () {\n return this.avatarFullName || this.avatarSrc;\n },\n\n badgeClass () {\n return CALLBOX_BADGE_COLORS[this.badgeColor];\n },\n\n borderClass () {\n return CALLBOX_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-callbox {\n padding: 0;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n border-radius: var(--dt-size-radius-300);\n\n &--video {\n display: flex;\n border-radius: var(--dt-size-radius-200) var(--dt-size-radius-200) 0 0;\n overflow: clip;\n margin-bottom: var(--dt-space-300-negative);\n }\n\n &--main-content {\n padding: 0;\n border-radius: var(--dt-size-radius-300);\n border: var(--dt-size-border-100) solid transparent;\n align-items: stretch;\n\n &.dt-recipe-callbox--border-default {\n border-color: var(--dt-color-border-default);\n }\n\n &.dt-recipe-callbox--border-ai {\n background:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n linear-gradient(135deg, var(--dt-color-border-accent), var(--dt-color-border-brand)) border-box;\n }\n\n &.dt-recipe-callbox--border-critical {\n background:\n radial-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n radial-gradient(circle, #E7301D, #F78B23) border-box;\n }\n\n &-top {\n display: flex;\n align-items: center;\n padding: var(--dt-space-350) var(--dt-space-400);\n }\n\n &-bottom {\n border-top: 1px solid var(--dt-color-border-subtle);\n }\n }\n\n &--avatar {\n margin-right: var(--dt-space-400);\n }\n\n &--content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n min-width: 0;\n\n &-title {\n overflow: clip;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n font-weight: var(--dt-font-weight-bold);\n border: none;\n padding: 0;\n width: 0;\n min-width: 100%;\n text-align: left;\n user-select: text;\n line-height: normal;\n }\n\n &-badge {\n line-height: normal;\n }\n\n &-subtitle {\n padding: 0;\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n line-height: normal;\n overflow: hidden;\n width: 0;\n min-width: 100%;\n }\n }\n\n &--right {\n display: flex;\n justify-content: right;\n }\n\n &--clickable {\n .dt-recipe-callbox--content-title {\n cursor: pointer;\n user-select: none;\n border-radius: var(--dt-size-100);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover, &:active {\n text-decoration: underline;\n }\n }\n }\n\n .dt-recipe-callbox-badge--warning {\n background-color: var(--dt-color-surface-warning);\n }\n}\n</style>\n"],"names":["CALLBOX_BADGE_COLORS","CALLBOX_BORDER_COLORS","_sfc_main","DtBadge","DtAvatar","color","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_hoisted_1","_ctx","_hoisted_2","_renderSlot","_createElementVNode","_normalizeClass","$options","$props","_createBlock","_component_dt_avatar","_resolveDynamicComponent","_hoisted_5","_createVNode","_component_dt_badge","_hoisted_6","_hoisted_7","_hoisted_8"],"mappings":"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"}
1
+ {"version":3,"file":"callbox.js","sources":["../../recipes/leftbar/callbox/callbox_constants.js","../../recipes/leftbar/callbox/callbox.vue"],"sourcesContent":["export const CALLBOX_BADGE_COLORS = {\n warning: 'dt-recipe-callbox-badge--warning',\n};\n\nexport const CALLBOX_BORDER_COLORS = {\n default: 'dt-recipe-callbox--border-default',\n ai: 'dt-recipe-callbox--border-ai',\n critical: 'dt-recipe-callbox--border-critical',\n};\n\nexport default {\n CALLBOX_BADGE_COLORS,\n CALLBOX_BORDER_COLORS,\n};\n","<template>\n <div\n data-qa=\"dt-recipe-callbox\"\n class=\"dt-recipe-callbox\"\n >\n <div\n v-if=\"$slots.video\"\n data-qa=\"dt-recipe-callbox--video-wrapper\"\n class=\"dt-recipe-callbox--video\"\n >\n <!-- @slot Slot for video stream -->\n <slot name=\"video\" />\n </div>\n <div\n data-qa=\"dt-recipe-callbox--main-content\"\n :class=\"['dt-recipe-callbox--main-content', borderClass, { 'dt-recipe-callbox--clickable': clickable }]\"\n >\n <div\n class=\"dt-recipe-callbox--main-content-top\"\n >\n <dt-avatar\n v-if=\"shouldShowAvatar\"\n avatar-class=\"dt-recipe-callbox--avatar\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :full-name=\"avatarFullName\"\n :seed=\"avatarSeed\"\n :clickable=\"clickable\"\n :overlay-icon=\"isOnHold ? 'pause' : null\"\n size=\"sm\"\n @click=\"handleClick\"\n />\n <div class=\"dt-recipe-callbox--content\">\n <component\n :is=\"clickable ? 'button' : 'span'\"\n data-qa=\"dt-recipe-callbox--title\"\n class=\"dt-recipe-callbox--content-title\"\n @click=\"handleClick\"\n >\n {{ title }}\n </component>\n <div\n v-if=\"$slots.badge || badgeText\"\n data-qa=\"dt-recipe-callbox--badge-wrapper\"\n class=\"dt-recipe-callbox--content-badge\"\n >\n <!-- @slot Slot for call center badge -->\n <slot name=\"badge\">\n <dt-badge\n :class=\"badgeClass\"\n :text=\"badgeText\"\n />\n </slot>\n </div>\n <div\n v-if=\"$slots.subtitle\"\n data-qa=\"dt-recipe-callbox--subtitle-wrapper\"\n class=\"dt-recipe-callbox--content-subtitle\"\n >\n <!-- @slot Slot for subtitle -->\n <slot name=\"subtitle\" />\n </div>\n </div>\n <div\n v-if=\"$slots.right\"\n data-qa=\"dt-recipe-callbox--right-wrapper\"\n class=\"dt-recipe-callbox--right\"\n >\n <!-- @slot Slot for right icons -->\n <slot name=\"right\" />\n </div>\n </div>\n <div\n v-if=\"$slots.bottom\"\n data-qa=\"dt-recipe-callbox--bottom-wrapper\"\n class=\"dt-recipe-callbox--main-content-bottom\"\n >\n <slot name=\"bottom\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { CALLBOX_BADGE_COLORS, CALLBOX_BORDER_COLORS } from './callbox_constants';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport DtBadge from '@/components/badge/badge.vue';\n\nexport default {\n name: 'DtRecipeCallbox',\n\n components: { DtBadge, DtAvatar },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Text for the badge element\n */\n badgeText: {\n type: String,\n default: '',\n },\n\n /**\n * Color for the badge element\n * @values null, warning\n */\n badgeColor: {\n type: String,\n default: null,\n validator: (color) => color === null || Object.keys(CALLBOX_BADGE_COLORS).includes(color),\n },\n\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display if `avatarSrc` is empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox title\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Callbox border color\n * @values default, ai, critical\n */\n borderColor: {\n type: String,\n default: 'default',\n validator: (color) => Object.keys(CALLBOX_BORDER_COLORS).includes(color),\n },\n\n /**\n * Makes the callbox avatar and title clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls the avatars overlay icon\n */\n isOnHold: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Callbox click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n shouldShowAvatar () {\n return this.avatarFullName || this.avatarSrc;\n },\n\n badgeClass () {\n return CALLBOX_BADGE_COLORS[this.badgeColor];\n },\n\n borderClass () {\n return CALLBOX_BORDER_COLORS[this.borderColor];\n },\n },\n\n methods: {\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-recipe-callbox {\n padding: 0;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n border-radius: var(--dt-size-radius-300);\n\n &--video {\n display: flex;\n border-radius: var(--dt-size-radius-200) var(--dt-size-radius-200) 0 0;\n overflow: clip;\n margin-bottom: var(--dt-space-300-negative);\n }\n\n &--main-content {\n padding: 0;\n border-radius: var(--dt-size-radius-300);\n border: var(--dt-size-border-100) solid transparent;\n align-items: stretch;\n\n &.dt-recipe-callbox--border-default {\n border-color: var(--dt-color-border-default);\n }\n\n &.dt-recipe-callbox--border-ai {\n background:\n linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n linear-gradient(135deg, var(--dt-color-border-accent), var(--dt-color-border-brand)) border-box;\n }\n\n &.dt-recipe-callbox--border-critical {\n background:\n radial-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,\n radial-gradient(circle, #E7301D, #F78B23) border-box;\n }\n\n &-top {\n display: flex;\n align-items: center;\n padding: var(--dt-space-350) var(--dt-space-400);\n }\n\n &-bottom {\n border-top: 1px solid var(--dt-color-border-subtle);\n }\n }\n\n &--avatar {\n margin-right: var(--dt-space-400);\n }\n\n &--content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n min-width: 0;\n\n &-title {\n overflow: clip;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dt-color-foreground-primary);\n background-color: var(--dt-color-surface-primary);\n font-weight: var(--dt-font-weight-bold);\n border: none;\n padding: 0;\n width: 0;\n min-width: 100%;\n text-align: left;\n user-select: text;\n line-height: normal;\n }\n\n &-badge {\n line-height: normal;\n }\n\n &-subtitle {\n padding: 0;\n font-size: var(--dt-font-size-100);\n color: var(--dt-color-foreground-tertiary);\n line-height: normal;\n overflow: hidden;\n width: 0;\n min-width: 100%;\n }\n }\n\n &--right {\n display: flex;\n justify-content: right;\n }\n\n &--clickable {\n .dt-recipe-callbox--content-title {\n cursor: pointer;\n user-select: none;\n border-radius: var(--dt-size-100);\n\n &:focus-visible {\n outline: none;\n box-shadow: var(--dt-shadow-focus);\n }\n\n &:hover, &:active {\n text-decoration: underline;\n }\n }\n }\n\n .dt-recipe-callbox-badge--warning {\n background-color: var(--dt-color-surface-warning);\n }\n}\n</style>\n"],"names":["CALLBOX_BADGE_COLORS","CALLBOX_BORDER_COLORS","_sfc_main","DtBadge","DtAvatar","color","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_hoisted_1","_ctx","_hoisted_2","_renderSlot","_createElementVNode","_normalizeClass","$options","$props","_createBlock","_component_dt_avatar","_resolveDynamicComponent","_hoisted_5","_createVNode","_component_dt_badge","_hoisted_6","_hoisted_7","_hoisted_8"],"mappings":"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"}