@dialpad/dialtone-vue 2.153.0 → 2.154.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 (398) hide show
  1. package/dist/chunks/{dropdown-YdCyJ5Dq.js → dropdown-6UoczdUY.js} +41 -77
  2. package/dist/chunks/{dropdown-YdCyJ5Dq.js.map → dropdown-6UoczdUY.js.map} +1 -1
  3. package/dist/chunks/{dropdown-mjrYu_mK.js → dropdown-pHxnQPzT.js} +41 -77
  4. package/dist/chunks/{dropdown-mjrYu_mK.js.map → dropdown-pHxnQPzT.js.map} +1 -1
  5. package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
  6. package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
  7. package/dist/chunks/{icon_constants-TdxqLsS2.js → icon_constants-Dy4MEUJL.js} +2 -3
  8. package/dist/chunks/icon_constants-Dy4MEUJL.js.map +1 -0
  9. package/dist/chunks/{icon_constants-VEA0wI5C.js → icon_constants-QYpmdE0R.js} +2 -3
  10. package/dist/chunks/icon_constants-QYpmdE0R.js.map +1 -0
  11. package/dist/chunks/{index-i65YVk-U.js → index-ODod4Oj_.js} +13 -5
  12. package/dist/chunks/{index-i65YVk-U.js.map → index-ODod4Oj_.js.map} +1 -1
  13. package/dist/chunks/{index-NYFNZeHH.js → index-anN_sx1F.js} +13 -5
  14. package/dist/chunks/{index-NYFNZeHH.js.map → index-anN_sx1F.js.map} +1 -1
  15. package/dist/chunks/{index-mBWay1Qb.js → index-eJ-WWRdf.js} +87 -122
  16. package/dist/chunks/{index-mBWay1Qb.js.map → index-eJ-WWRdf.js.map} +1 -1
  17. package/dist/chunks/{index-DyqUqjvI.js → index-gj1jEXP4.js} +87 -122
  18. package/dist/chunks/{index-DyqUqjvI.js.map → index-gj1jEXP4.js.map} +1 -1
  19. package/dist/chunks/{input-PhJeBN6r.js → input-6kbd8Pju.js} +9 -3
  20. package/dist/chunks/{input-PhJeBN6r.js.map → input-6kbd8Pju.js.map} +1 -1
  21. package/dist/chunks/{input-Hqw33WBe.js → input-Axw-wFj2.js} +9 -3
  22. package/dist/chunks/{input-Hqw33WBe.js.map → input-Axw-wFj2.js.map} +1 -1
  23. package/dist/chunks/{input_group-pE6ec9R3.js → input_group-m3cWYUfI.js} +2 -4
  24. package/dist/chunks/{input_group-ZI7aVGEp.js.map → input_group-m3cWYUfI.js.map} +1 -1
  25. package/dist/chunks/{input_group-ZI7aVGEp.js → input_group-qVZaS5Bb.js} +2 -4
  26. package/dist/chunks/{input_group-pE6ec9R3.js.map → input_group-qVZaS5Bb.js.map} +1 -1
  27. package/dist/chunks/{keyboard_list_navigation-YIqTuw1W.js → keyboard_list_navigation-ScXhrxya.js} +5 -6
  28. package/dist/chunks/{keyboard_list_navigation-x3D6RcC7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  29. package/dist/chunks/{keyboard_list_navigation-x3D6RcC7.js → keyboard_list_navigation-fJnl_Iox.js} +5 -6
  30. package/dist/chunks/{keyboard_list_navigation-YIqTuw1W.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  31. package/dist/chunks/link_constants-AfTWrr-n.js.map +1 -1
  32. package/dist/chunks/link_constants-x8NwdqmA.js.map +1 -1
  33. package/dist/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
  34. package/dist/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
  35. package/dist/chunks/{modal-OaWxzqNt.js → modal-VgxXAQFP.js} +2 -4
  36. package/dist/chunks/{modal-OaWxzqNt.js.map → modal-VgxXAQFP.js.map} +1 -1
  37. package/dist/chunks/{modal-8X6poIZW.js → modal-XOr4kiNZ.js} +2 -4
  38. package/dist/chunks/{modal-8X6poIZW.js.map → modal-XOr4kiNZ.js.map} +1 -1
  39. package/dist/chunks/{notice_action-qQr3K2TC.js → notice_action-IRUoLX2d.js} +46 -71
  40. package/dist/chunks/{notice_action-qQr3K2TC.js.map → notice_action-IRUoLX2d.js.map} +1 -1
  41. package/dist/chunks/{notice_action-tEvvMg7Q.js → notice_action-P6uDyE9x.js} +46 -71
  42. package/dist/chunks/{notice_action-tEvvMg7Q.js.map → notice_action-P6uDyE9x.js.map} +1 -1
  43. package/dist/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
  44. package/dist/chunks/notice_constants-UXo9e3bS.js.map +1 -1
  45. package/dist/chunks/{popover_constants-6YkPPbnk.js → popover_constants-WsOUIY-m.js} +47 -26
  46. package/dist/chunks/{popover_constants-6YkPPbnk.js.map → popover_constants-WsOUIY-m.js.map} +1 -1
  47. package/dist/chunks/{popover_constants-h9MD6WUt.js → popover_constants-XnGWXaxX.js} +47 -26
  48. package/dist/chunks/{popover_constants-h9MD6WUt.js.map → popover_constants-XnGWXaxX.js.map} +1 -1
  49. package/dist/chunks/{sr_only_close_button-IjMVfBDE.js → sr_only_close_button-81bHIpPu.js} +18 -24
  50. package/dist/chunks/{sr_only_close_button-IjMVfBDE.js.map → sr_only_close_button-81bHIpPu.js.map} +1 -1
  51. package/dist/chunks/{sr_only_close_button-2Q9Ny1Nc.js → sr_only_close_button-ZaGdAHz7.js} +18 -24
  52. package/dist/chunks/{sr_only_close_button-2Q9Ny1Nc.js.map → sr_only_close_button-ZaGdAHz7.js.map} +1 -1
  53. package/dist/chunks/stack_constants-HraCekPm.js.map +1 -1
  54. package/dist/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
  55. package/dist/chunks/{tab-79yMX6m6.js → tab-FcsV5VmK.js} +68 -86
  56. package/dist/chunks/{tab-muPOS7JE.js.map → tab-FcsV5VmK.js.map} +1 -1
  57. package/dist/chunks/{tab-muPOS7JE.js → tab-V4cb44Ry.js} +68 -86
  58. package/dist/chunks/{tab-79yMX6m6.js.map → tab-V4cb44Ry.js.map} +1 -1
  59. package/dist/common/constants.cjs.map +1 -1
  60. package/dist/common/constants.js.map +1 -1
  61. package/dist/common/dates.cjs +1 -3
  62. package/dist/common/dates.cjs.map +1 -1
  63. package/dist/common/dates.js +1 -3
  64. package/dist/common/dates.js.map +1 -1
  65. package/dist/common/emoji.cjs +1 -1
  66. package/dist/common/emoji.js +1 -1
  67. package/dist/common/mixins.cjs +3 -3
  68. package/dist/common/mixins.js +3 -3
  69. package/dist/common/utils.cjs +44 -8
  70. package/dist/common/utils.cjs.map +1 -1
  71. package/dist/common/utils.js +44 -8
  72. package/dist/common/utils.js.map +1 -1
  73. package/dist/common/validators.cjs.map +1 -1
  74. package/dist/common/validators.js.map +1 -1
  75. package/dist/component-documentation.json +1 -1
  76. package/dist/dialtone-vue.cjs +12 -12
  77. package/dist/dialtone-vue.js +12 -12
  78. package/dist/lib/attachment-carousel.cjs +48 -172
  79. package/dist/lib/attachment-carousel.cjs.map +1 -1
  80. package/dist/lib/attachment-carousel.js +48 -172
  81. package/dist/lib/attachment-carousel.js.map +1 -1
  82. package/dist/lib/avatar.cjs +58 -75
  83. package/dist/lib/avatar.cjs.map +1 -1
  84. package/dist/lib/avatar.js +58 -75
  85. package/dist/lib/avatar.js.map +1 -1
  86. package/dist/lib/badge.cjs +20 -31
  87. package/dist/lib/badge.cjs.map +1 -1
  88. package/dist/lib/badge.js +20 -31
  89. package/dist/lib/badge.js.map +1 -1
  90. package/dist/lib/banner.cjs +29 -53
  91. package/dist/lib/banner.cjs.map +1 -1
  92. package/dist/lib/banner.js +29 -53
  93. package/dist/lib/banner.js.map +1 -1
  94. package/dist/lib/breadcrumbs.cjs +30 -36
  95. package/dist/lib/breadcrumbs.cjs.map +1 -1
  96. package/dist/lib/breadcrumbs.js +30 -36
  97. package/dist/lib/breadcrumbs.js.map +1 -1
  98. package/dist/lib/button-group.cjs +14 -7
  99. package/dist/lib/button-group.cjs.map +1 -1
  100. package/dist/lib/button-group.js +14 -7
  101. package/dist/lib/button-group.js.map +1 -1
  102. package/dist/lib/button.cjs +62 -55
  103. package/dist/lib/button.cjs.map +1 -1
  104. package/dist/lib/button.js +62 -55
  105. package/dist/lib/button.js.map +1 -1
  106. package/dist/lib/callbar-button-with-popover.cjs +23 -91
  107. package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
  108. package/dist/lib/callbar-button-with-popover.js +23 -91
  109. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  110. package/dist/lib/callbar-button.cjs +33 -49
  111. package/dist/lib/callbar-button.cjs.map +1 -1
  112. package/dist/lib/callbar-button.js +33 -49
  113. package/dist/lib/callbar-button.js.map +1 -1
  114. package/dist/lib/callbox.cjs +15 -78
  115. package/dist/lib/callbox.cjs.map +1 -1
  116. package/dist/lib/callbox.js +15 -78
  117. package/dist/lib/callbox.js.map +1 -1
  118. package/dist/lib/card.cjs +23 -16
  119. package/dist/lib/card.cjs.map +1 -1
  120. package/dist/lib/card.js +23 -16
  121. package/dist/lib/card.js.map +1 -1
  122. package/dist/lib/checkbox-group.cjs +15 -3
  123. package/dist/lib/checkbox-group.cjs.map +1 -1
  124. package/dist/lib/checkbox-group.js +15 -3
  125. package/dist/lib/checkbox-group.js.map +1 -1
  126. package/dist/lib/checkbox.cjs +16 -52
  127. package/dist/lib/checkbox.cjs.map +1 -1
  128. package/dist/lib/checkbox.js +16 -52
  129. package/dist/lib/checkbox.js.map +1 -1
  130. package/dist/lib/chip.cjs +26 -58
  131. package/dist/lib/chip.cjs.map +1 -1
  132. package/dist/lib/chip.js +26 -58
  133. package/dist/lib/chip.js.map +1 -1
  134. package/dist/lib/codeblock.cjs +11 -4
  135. package/dist/lib/codeblock.cjs.map +1 -1
  136. package/dist/lib/codeblock.js +11 -4
  137. package/dist/lib/codeblock.js.map +1 -1
  138. package/dist/lib/collapsible.cjs +34 -91
  139. package/dist/lib/collapsible.cjs.map +1 -1
  140. package/dist/lib/collapsible.js +34 -91
  141. package/dist/lib/collapsible.js.map +1 -1
  142. package/dist/lib/combobox-multi-select.cjs +38 -131
  143. package/dist/lib/combobox-multi-select.cjs.map +1 -1
  144. package/dist/lib/combobox-multi-select.js +38 -131
  145. package/dist/lib/combobox-multi-select.js.map +1 -1
  146. package/dist/lib/combobox-with-popover.cjs +39 -130
  147. package/dist/lib/combobox-with-popover.cjs.map +1 -1
  148. package/dist/lib/combobox-with-popover.js +39 -130
  149. package/dist/lib/combobox-with-popover.js.map +1 -1
  150. package/dist/lib/combobox.cjs +3 -3
  151. package/dist/lib/combobox.js +3 -3
  152. package/dist/lib/contact-centers-row.cjs +29 -86
  153. package/dist/lib/contact-centers-row.cjs.map +1 -1
  154. package/dist/lib/contact-centers-row.js +29 -86
  155. package/dist/lib/contact-centers-row.js.map +1 -1
  156. package/dist/lib/contact-info.cjs +31 -95
  157. package/dist/lib/contact-info.cjs.map +1 -1
  158. package/dist/lib/contact-info.js +31 -95
  159. package/dist/lib/contact-info.js.map +1 -1
  160. package/dist/lib/contact-row.cjs +18 -61
  161. package/dist/lib/contact-row.cjs.map +1 -1
  162. package/dist/lib/contact-row.js +18 -61
  163. package/dist/lib/contact-row.js.map +1 -1
  164. package/dist/lib/datepicker.cjs +102 -361
  165. package/dist/lib/datepicker.cjs.map +1 -1
  166. package/dist/lib/datepicker.js +102 -361
  167. package/dist/lib/datepicker.js.map +1 -1
  168. package/dist/lib/description-list.cjs +12 -11
  169. package/dist/lib/description-list.cjs.map +1 -1
  170. package/dist/lib/description-list.js +12 -11
  171. package/dist/lib/description-list.js.map +1 -1
  172. package/dist/lib/dropdown.cjs +17 -13
  173. package/dist/lib/dropdown.cjs.map +1 -1
  174. package/dist/lib/dropdown.js +17 -13
  175. package/dist/lib/dropdown.js.map +1 -1
  176. package/dist/lib/editor.cjs +109 -409
  177. package/dist/lib/editor.cjs.map +1 -1
  178. package/dist/lib/editor.js +109 -409
  179. package/dist/lib/editor.js.map +1 -1
  180. package/dist/lib/emoji-picker.cjs +234 -512
  181. package/dist/lib/emoji-picker.cjs.map +1 -1
  182. package/dist/lib/emoji-picker.js +234 -512
  183. package/dist/lib/emoji-picker.js.map +1 -1
  184. package/dist/lib/emoji-row.cjs +31 -69
  185. package/dist/lib/emoji-row.cjs.map +1 -1
  186. package/dist/lib/emoji-row.js +31 -69
  187. package/dist/lib/emoji-row.js.map +1 -1
  188. package/dist/lib/emoji-text-wrapper.cjs +22 -14
  189. package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
  190. package/dist/lib/emoji-text-wrapper.js +22 -14
  191. package/dist/lib/emoji-text-wrapper.js.map +1 -1
  192. package/dist/lib/emoji.cjs +13 -40
  193. package/dist/lib/emoji.cjs.map +1 -1
  194. package/dist/lib/emoji.js +13 -40
  195. package/dist/lib/emoji.js.map +1 -1
  196. package/dist/lib/empty-state.cjs +12 -27
  197. package/dist/lib/empty-state.cjs.map +1 -1
  198. package/dist/lib/empty-state.js +12 -27
  199. package/dist/lib/empty-state.js.map +1 -1
  200. package/dist/lib/feed-item-row.cjs +27 -106
  201. package/dist/lib/feed-item-row.cjs.map +1 -1
  202. package/dist/lib/feed-item-row.js +27 -106
  203. package/dist/lib/feed-item-row.js.map +1 -1
  204. package/dist/lib/feed-pill.cjs +35 -90
  205. package/dist/lib/feed-pill.cjs.map +1 -1
  206. package/dist/lib/feed-pill.js +35 -90
  207. package/dist/lib/feed-pill.js.map +1 -1
  208. package/dist/lib/general-row.cjs +75 -184
  209. package/dist/lib/general-row.cjs.map +1 -1
  210. package/dist/lib/general-row.js +75 -184
  211. package/dist/lib/general-row.js.map +1 -1
  212. package/dist/lib/group-row.cjs +16 -27
  213. package/dist/lib/group-row.cjs.map +1 -1
  214. package/dist/lib/group-row.js +16 -27
  215. package/dist/lib/group-row.js.map +1 -1
  216. package/dist/lib/grouped-chip.cjs +20 -68
  217. package/dist/lib/grouped-chip.cjs.map +1 -1
  218. package/dist/lib/grouped-chip.js +20 -68
  219. package/dist/lib/grouped-chip.js.map +1 -1
  220. package/dist/lib/hovercard.cjs +41 -71
  221. package/dist/lib/hovercard.cjs.map +1 -1
  222. package/dist/lib/hovercard.js +41 -71
  223. package/dist/lib/hovercard.js.map +1 -1
  224. package/dist/lib/icon.cjs +12 -10
  225. package/dist/lib/icon.cjs.map +1 -1
  226. package/dist/lib/icon.js +12 -10
  227. package/dist/lib/icon.js.map +1 -1
  228. package/dist/lib/illustration.cjs +12 -9
  229. package/dist/lib/illustration.cjs.map +1 -1
  230. package/dist/lib/illustration.js +12 -9
  231. package/dist/lib/illustration.js.map +1 -1
  232. package/dist/lib/image-viewer.cjs +23 -88
  233. package/dist/lib/image-viewer.cjs.map +1 -1
  234. package/dist/lib/image-viewer.js +23 -88
  235. package/dist/lib/image-viewer.js.map +1 -1
  236. package/dist/lib/input-group.cjs +14 -24
  237. package/dist/lib/input-group.cjs.map +1 -1
  238. package/dist/lib/input-group.js +14 -24
  239. package/dist/lib/input-group.js.map +1 -1
  240. package/dist/lib/input.cjs +47 -109
  241. package/dist/lib/input.cjs.map +1 -1
  242. package/dist/lib/input.js +47 -109
  243. package/dist/lib/input.js.map +1 -1
  244. package/dist/lib/item-layout.cjs +11 -42
  245. package/dist/lib/item-layout.cjs.map +1 -1
  246. package/dist/lib/item-layout.js +11 -42
  247. package/dist/lib/item-layout.js.map +1 -1
  248. package/dist/lib/ivr-node.cjs +47 -135
  249. package/dist/lib/ivr-node.cjs.map +1 -1
  250. package/dist/lib/ivr-node.js +47 -135
  251. package/dist/lib/ivr-node.js.map +1 -1
  252. package/dist/lib/keyboard-shortcut.cjs +23 -35
  253. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  254. package/dist/lib/keyboard-shortcut.js +23 -35
  255. package/dist/lib/keyboard-shortcut.js.map +1 -1
  256. package/dist/lib/lazy-show.cjs +11 -15
  257. package/dist/lib/lazy-show.cjs.map +1 -1
  258. package/dist/lib/lazy-show.js +11 -15
  259. package/dist/lib/lazy-show.js.map +1 -1
  260. package/dist/lib/link.cjs +15 -9
  261. package/dist/lib/link.cjs.map +1 -1
  262. package/dist/lib/link.js +15 -9
  263. package/dist/lib/link.js.map +1 -1
  264. package/dist/lib/list-item-group.cjs +11 -17
  265. package/dist/lib/list-item-group.cjs.map +1 -1
  266. package/dist/lib/list-item-group.js +11 -17
  267. package/dist/lib/list-item-group.js.map +1 -1
  268. package/dist/lib/list-item.cjs +23 -42
  269. package/dist/lib/list-item.cjs.map +1 -1
  270. package/dist/lib/list-item.js +23 -42
  271. package/dist/lib/list-item.js.map +1 -1
  272. package/dist/lib/message-input.cjs +97 -360
  273. package/dist/lib/message-input.cjs.map +1 -1
  274. package/dist/lib/message-input.js +97 -360
  275. package/dist/lib/message-input.js.map +1 -1
  276. package/dist/lib/modal.cjs +36 -94
  277. package/dist/lib/modal.cjs.map +1 -1
  278. package/dist/lib/modal.js +36 -94
  279. package/dist/lib/modal.js.map +1 -1
  280. package/dist/lib/notice.cjs +21 -40
  281. package/dist/lib/notice.cjs.map +1 -1
  282. package/dist/lib/notice.js +21 -40
  283. package/dist/lib/notice.js.map +1 -1
  284. package/dist/lib/pagination.cjs +20 -81
  285. package/dist/lib/pagination.cjs.map +1 -1
  286. package/dist/lib/pagination.js +20 -81
  287. package/dist/lib/pagination.js.map +1 -1
  288. package/dist/lib/popover.cjs +75 -194
  289. package/dist/lib/popover.cjs.map +1 -1
  290. package/dist/lib/popover.js +76 -195
  291. package/dist/lib/popover.js.map +1 -1
  292. package/dist/lib/presence.cjs +22 -23
  293. package/dist/lib/presence.cjs.map +1 -1
  294. package/dist/lib/presence.js +22 -23
  295. package/dist/lib/presence.js.map +1 -1
  296. package/dist/lib/radio-group.cjs +11 -2
  297. package/dist/lib/radio-group.cjs.map +1 -1
  298. package/dist/lib/radio-group.js +11 -2
  299. package/dist/lib/radio-group.js.map +1 -1
  300. package/dist/lib/radio.cjs +15 -47
  301. package/dist/lib/radio.cjs.map +1 -1
  302. package/dist/lib/radio.js +15 -47
  303. package/dist/lib/radio.js.map +1 -1
  304. package/dist/lib/rich-text-editor.cjs +317 -336
  305. package/dist/lib/rich-text-editor.cjs.map +1 -1
  306. package/dist/lib/rich-text-editor.js +317 -336
  307. package/dist/lib/rich-text-editor.js.map +1 -1
  308. package/dist/lib/root-layout.cjs +15 -33
  309. package/dist/lib/root-layout.cjs.map +1 -1
  310. package/dist/lib/root-layout.js +15 -33
  311. package/dist/lib/root-layout.js.map +1 -1
  312. package/dist/lib/scrollbar-directive.cjs +422 -388
  313. package/dist/lib/scrollbar-directive.cjs.map +1 -1
  314. package/dist/lib/scrollbar-directive.js +422 -388
  315. package/dist/lib/scrollbar-directive.js.map +1 -1
  316. package/dist/lib/select-menu.cjs +33 -52
  317. package/dist/lib/select-menu.cjs.map +1 -1
  318. package/dist/lib/select-menu.js +33 -52
  319. package/dist/lib/select-menu.js.map +1 -1
  320. package/dist/lib/settings-menu-button.cjs +16 -42
  321. package/dist/lib/settings-menu-button.cjs.map +1 -1
  322. package/dist/lib/settings-menu-button.js +16 -42
  323. package/dist/lib/settings-menu-button.js.map +1 -1
  324. package/dist/lib/skeleton.cjs +93 -118
  325. package/dist/lib/skeleton.cjs.map +1 -1
  326. package/dist/lib/skeleton.js +93 -118
  327. package/dist/lib/skeleton.js.map +1 -1
  328. package/dist/lib/split-button.cjs +64 -164
  329. package/dist/lib/split-button.cjs.map +1 -1
  330. package/dist/lib/split-button.js +64 -164
  331. package/dist/lib/split-button.js.map +1 -1
  332. package/dist/lib/stack.cjs +33 -21
  333. package/dist/lib/stack.cjs.map +1 -1
  334. package/dist/lib/stack.js +33 -21
  335. package/dist/lib/stack.js.map +1 -1
  336. package/dist/lib/tabs.cjs +13 -20
  337. package/dist/lib/tabs.cjs.map +1 -1
  338. package/dist/lib/tabs.js +13 -20
  339. package/dist/lib/tabs.js.map +1 -1
  340. package/dist/lib/time-pill.cjs +11 -8
  341. package/dist/lib/time-pill.cjs.map +1 -1
  342. package/dist/lib/time-pill.js +11 -8
  343. package/dist/lib/time-pill.js.map +1 -1
  344. package/dist/lib/toast.cjs +21 -42
  345. package/dist/lib/toast.cjs.map +1 -1
  346. package/dist/lib/toast.js +21 -42
  347. package/dist/lib/toast.js.map +1 -1
  348. package/dist/lib/toggle.cjs +24 -28
  349. package/dist/lib/toggle.cjs.map +1 -1
  350. package/dist/lib/toggle.js +24 -28
  351. package/dist/lib/toggle.js.map +1 -1
  352. package/dist/lib/tooltip-directive.cjs +26 -32
  353. package/dist/lib/tooltip-directive.cjs.map +1 -1
  354. package/dist/lib/tooltip-directive.js +26 -32
  355. package/dist/lib/tooltip-directive.js.map +1 -1
  356. package/dist/lib/tooltip.cjs +21 -31
  357. package/dist/lib/tooltip.cjs.map +1 -1
  358. package/dist/lib/tooltip.js +22 -32
  359. package/dist/lib/tooltip.js.map +1 -1
  360. package/dist/lib/top-banner-info.cjs +21 -18
  361. package/dist/lib/top-banner-info.cjs.map +1 -1
  362. package/dist/lib/top-banner-info.js +21 -18
  363. package/dist/lib/top-banner-info.js.map +1 -1
  364. package/dist/lib/unread-pill.cjs +12 -18
  365. package/dist/lib/unread-pill.cjs.map +1 -1
  366. package/dist/lib/unread-pill.js +12 -18
  367. package/dist/lib/unread-pill.js.map +1 -1
  368. package/dist/lib/validation-messages.cjs +16 -23
  369. package/dist/lib/validation-messages.cjs.map +1 -1
  370. package/dist/lib/validation-messages.js +16 -23
  371. package/dist/lib/validation-messages.js.map +1 -1
  372. package/dist/style.css +9 -9
  373. package/dist/types/common/emoji/index.d.ts +59236 -2
  374. package/dist/types/common/emoji/index.d.ts.map +1 -1
  375. package/dist/types/components/button/button.vue.d.ts +1 -1
  376. package/dist/types/components/chip/chip.vue.d.ts +1 -1
  377. package/dist/types/components/combobox/combobox.vue.d.ts +1 -1
  378. package/dist/types/components/icon/icon.vue.d.ts +2 -2
  379. package/dist/types/components/icon/icon_constants.d.ts +1 -1
  380. package/dist/types/components/icon/icon_constants.d.ts.map +1 -1
  381. package/dist/types/components/illustration/illustration.vue.d.ts +2 -2
  382. package/dist/types/components/illustration/illustration_constants.d.ts +1 -1
  383. package/dist/types/components/illustration/illustration_constants.d.ts.map +1 -1
  384. package/dist/types/components/input/input.vue.d.ts +3 -2
  385. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  386. package/dist/types/components/modal/modal.vue.d.ts +1 -1
  387. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
  388. package/dist/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
  389. package/dist/types/components/toast/toast.vue.d.ts +1 -1
  390. package/dist/types/components/tooltip/tooltip.vue.d.ts +1 -1
  391. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
  392. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
  393. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  394. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +15 -0
  395. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  396. package/package.json +2 -4
  397. package/dist/chunks/icon_constants-TdxqLsS2.js.map +0 -1
  398. package/dist/chunks/icon_constants-VEA0wI5C.js.map +0 -1
@@ -1 +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","start","end","_sfc_main","name","props","alignment","type","String","default","validator","Object","keys","includes","data"],"mappings":";;;AAAO,MAAMA,yBAAyB;AAAA,EACpCC,OAAO;AAAA,EACPC,KAAK;AAAA,EACL,iBAAiB;AACnB;ACYA,MAAAC,YAAA;AAAA,EACAC,MAAA;AAAA,EAEAC,OAAA;AAAA;AAAA;AAAA;AAAA,IAIAC,WAAA;AAAA,MACAC,MAAAC;AAAAA,MACAC,SAAA;AAAA,MACAC,WAAAJ,eAAAK,OAAAC,KAAAZ,sBAAA,EAAAa,SAAAP,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEAQ,OAAA;AACA,WAAA;AAAA,MACAd;AAAAA;EAEA;AACA;;;;;;;;;;;;;;;"}
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":[],"mappings":";;;AAAY,MAAC,yBAAyB;AAAA,EACpC,OAAO;AAAA,EACP,KAAK;AAAA,EACL,iBAAiB;AACnB;ACYA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,cAAA,OAAA,KAAA,sBAAA,EAAA,SAAA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;"}
@@ -24,15 +24,22 @@ const _sfc_main = {
24
24
  };
25
25
  var _sfc_render = function render() {
26
26
  var _vm = this, _c = _vm._self._c;
27
- return _c("div", {
28
- class: ["d-btn-group", _vm.BUTTON_GROUP_ALIGNMENT[_vm.alignment]],
29
- attrs: {
30
- "role": "group"
31
- }
32
- }, [_vm._t("default")], 2);
27
+ return _c("div", { class: [
28
+ "d-btn-group",
29
+ _vm.BUTTON_GROUP_ALIGNMENT[_vm.alignment]
30
+ ], attrs: { "role": "group" } }, [_vm._t("default")], 2);
33
31
  };
34
32
  var _sfc_staticRenderFns = [];
35
- var __component__ = /* @__PURE__ */ normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
33
+ var __component__ = /* @__PURE__ */ normalizeComponent(
34
+ _sfc_main,
35
+ _sfc_render,
36
+ _sfc_staticRenderFns,
37
+ false,
38
+ null,
39
+ null,
40
+ null,
41
+ null
42
+ );
36
43
  const button_group = __component__.exports;
37
44
  export {
38
45
  BUTTON_GROUP_ALIGNMENT,
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.js","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","start","end","_sfc_main","name","props","alignment","type","String","default","validator","Object","keys","includes","data"],"mappings":";AAAO,MAAMA,yBAAyB;AAAA,EACpCC,OAAO;AAAA,EACPC,KAAK;AAAA,EACL,iBAAiB;AACnB;ACYA,MAAAC,YAAA;AAAA,EACAC,MAAA;AAAA,EAEAC,OAAA;AAAA;AAAA;AAAA;AAAA,IAIAC,WAAA;AAAA,MACAC,MAAAC;AAAAA,MACAC,SAAA;AAAA,MACAC,WAAAJ,eAAAK,OAAAC,KAAAZ,sBAAA,EAAAa,SAAAP,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEAQ,OAAA;AACA,WAAA;AAAA,MACAd;AAAAA;EAEA;AACA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"button-group.js","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":[],"mappings":";AAAY,MAAC,yBAAyB;AAAA,EACpC,OAAO;AAAA,EACP,KAAK;AAAA,EACL,iBAAiB;AACnB;ACYA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,cAAA,OAAA,KAAA,sBAAA,EAAA,SAAA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;"}
@@ -28,27 +28,32 @@ const ICON_POSITION_MODIFIERS = {
28
28
  top: "d-btn__icon--top",
29
29
  bottom: "d-btn__icon--bottom"
30
30
  };
31
- const INVALID_COMBINATION = [{
32
- circle: true,
33
- kind: "default",
34
- importance: "primary",
35
- message: _invalidCombinationMessage(true, "default", "primary")
36
- }, {
37
- circle: true,
38
- kind: "danger",
39
- importance: "outlined",
40
- message: _invalidCombinationMessage(true, "danger", "outlined")
41
- }, {
42
- circle: true,
43
- kind: "muted",
44
- importance: "primary",
45
- message: _invalidCombinationMessage(true, "muted", "primary")
46
- }, {
47
- circle: false,
48
- kind: "muted",
49
- importance: "primary",
50
- message: _invalidCombinationMessage(false, "muted", "primary")
51
- }];
31
+ const INVALID_COMBINATION = [
32
+ {
33
+ circle: true,
34
+ kind: "default",
35
+ importance: "primary",
36
+ message: _invalidCombinationMessage(true, "default", "primary")
37
+ },
38
+ {
39
+ circle: true,
40
+ kind: "danger",
41
+ importance: "outlined",
42
+ message: _invalidCombinationMessage(true, "danger", "outlined")
43
+ },
44
+ {
45
+ circle: true,
46
+ kind: "muted",
47
+ importance: "primary",
48
+ message: _invalidCombinationMessage(true, "muted", "primary")
49
+ },
50
+ {
51
+ circle: false,
52
+ kind: "muted",
53
+ importance: "primary",
54
+ message: _invalidCombinationMessage(false, "muted", "primary")
55
+ }
56
+ ];
52
57
  const BUTTON_ICON_SIZES = {
53
58
  xs: "200",
54
59
  sm: "200",
@@ -274,15 +279,25 @@ const _sfc_main = {
274
279
  methods: {
275
280
  buttonClasses() {
276
281
  if (this.link) {
277
- return ["d-link", link_constants.getLinkKindModifier(this.linkKind, this.linkInverted), BUTTON_SIZE_MODIFIERS[this.size]];
282
+ return [
283
+ "d-link",
284
+ link_constants.getLinkKindModifier(this.linkKind, this.linkInverted),
285
+ BUTTON_SIZE_MODIFIERS[this.size]
286
+ ];
278
287
  }
279
- return ["d-btn", BUTTON_IMPORTANCE_MODIFIERS[this.importance], BUTTON_KIND_MODIFIERS[this.kind], BUTTON_SIZE_MODIFIERS[this.size], {
280
- "d-btn--circle": this.circle,
281
- "d-btn--loading": this.loading,
282
- "d-btn--icon-only": this.isIconOnly(),
283
- "d-btn--vertical": this.isVerticalIconLayout(),
284
- "d-btn--active": this.active
285
- }];
288
+ return [
289
+ "d-btn",
290
+ BUTTON_IMPORTANCE_MODIFIERS[this.importance],
291
+ BUTTON_KIND_MODIFIERS[this.kind],
292
+ BUTTON_SIZE_MODIFIERS[this.size],
293
+ {
294
+ "d-btn--circle": this.circle,
295
+ "d-btn--loading": this.loading,
296
+ "d-btn--icon-only": this.isIconOnly(),
297
+ "d-btn--vertical": this.isVerticalIconLayout(),
298
+ "d-btn--active": this.active
299
+ }
300
+ ];
286
301
  },
287
302
  isInvalidPropCombination(circle, kind, importance) {
288
303
  for (const row of INVALID_COMBINATION) {
@@ -306,34 +321,26 @@ const _sfc_main = {
306
321
  };
307
322
  var _sfc_render = function render() {
308
323
  var _vm = this, _c = _vm._self._c;
309
- return _c("button", _vm._g({
310
- class: ["base-button__button", _vm.buttonClasses()],
311
- style: {
312
- width: _vm.width
313
- },
314
- attrs: {
315
- "data-qa": "dt-button",
316
- "type": _vm.type,
317
- "disabled": _vm.disabled,
318
- "aria-live": _vm.computedAriaLive,
319
- "aria-label": _vm.loading ? "loading" : _vm.$attrs["aria-label"]
320
- }
321
- }, _vm.buttonListeners), [_vm.shouldRenderIcon() ? _c("span", {
322
- class: ["base-button__icon", "d-btn__icon", _vm.ICON_POSITION_MODIFIERS[_vm.iconPosition]],
323
- attrs: {
324
- "data-qa": "dt-button-icon"
325
- }
326
- }, [_vm._t("icon", null, {
327
- "iconSize": _vm.iconSize
328
- })], 2) : _vm._e(), _vm.$slots.default ? _c("span", {
329
- class: ["d-btn__label", "base-button__label", _vm.labelClass],
330
- attrs: {
331
- "data-qa": "dt-button-label"
332
- }
333
- }, [_vm._t("default")], 2) : _vm._e()]);
324
+ return _c("button", _vm._g({ class: [
325
+ "base-button__button",
326
+ _vm.buttonClasses()
327
+ ], style: { width: _vm.width }, attrs: { "data-qa": "dt-button", "type": _vm.type, "disabled": _vm.disabled, "aria-live": _vm.computedAriaLive, "aria-label": _vm.loading ? "loading" : _vm.$attrs["aria-label"] } }, _vm.buttonListeners), [_vm.shouldRenderIcon() ? _c("span", { class: [
328
+ "base-button__icon",
329
+ "d-btn__icon",
330
+ _vm.ICON_POSITION_MODIFIERS[_vm.iconPosition]
331
+ ], attrs: { "data-qa": "dt-button-icon" } }, [_vm._t("icon", null, { "iconSize": _vm.iconSize })], 2) : _vm._e(), _vm.$slots.default ? _c("span", { class: ["d-btn__label", "base-button__label", _vm.labelClass], attrs: { "data-qa": "dt-button-label" } }, [_vm._t("default")], 2) : _vm._e()]);
334
332
  };
335
333
  var _sfc_staticRenderFns = [];
336
- var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
334
+ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
335
+ _sfc_main,
336
+ _sfc_render,
337
+ _sfc_staticRenderFns,
338
+ false,
339
+ null,
340
+ null,
341
+ null,
342
+ null
343
+ );
337
344
  const DtButton = __component__.exports;
338
345
  exports.BUTTON_ICON_SIZES = BUTTON_ICON_SIZES;
339
346
  exports.BUTTON_IMPORTANCE_MODIFIERS = BUTTON_IMPORTANCE_MODIFIERS;
@@ -1 +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-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=\"$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 Vue from 'vue';\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, getLinkKindModifier } 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 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\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 * Determines whether the link should have inverted styling if the button is styled as a link.\n * @values true, false\n * @see DtLink\n */\n linkInverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\"> (Reference) </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 click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\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 };\n },\n\n computed: {\n\n buttonListeners () {\n if (!this.assertiveOnFocus) {\n return this.$listeners;\n }\n return {\n ...this.$listeners,\n focusin: (e) => {\n this.isInFocus = true;\n },\n\n focusout: (e) => {\n this.isInFocus = false;\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 Vue.util.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 getLinkKindModifier(this.linkKind, this.linkInverted),\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.$scopedSlots.icon && this.$scopedSlots.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","xs","sm","md","lg","xl","BUTTON_KIND_MODIFIERS","default","muted","danger","inverted","BUTTON_IMPORTANCE_MODIFIERS","clear","primary","outlined","BUTTON_TYPES","ICON_POSITION_MODIFIERS","left","right","top","bottom","INVALID_COMBINATION","circle","kind","importance","message","_invalidCombinationMessage","BUTTON_ICON_SIZES","_sfc_main","name","props","type","Boolean","iconPosition","String","validator","position","Object","keys","includes","i","link","linkKind","lk","LINK_KIND_MODIFIERS","linkInverted","disabled","t","width","size","s","labelClass","Array","loading","k","assertiveOnFocus","active","emits","data","isInFocus","computed","buttonListeners","$listeners","focusin","e","focusout","computedAriaLive","$attrs","ariaLive","iconSize","watch","$props","deep","immediate","handler","process","env","NODE_ENV","Vue","util","warn","isInvalidPropCombination","methods","buttonClasses","getLinkKindModifier","isIconOnly","isVerticalIconLayout","row","console","shouldRenderIcon","$scopedSlots","icon","$slots"],"mappings":"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"}
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-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=\"$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 Vue from 'vue';\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, getLinkKindModifier } 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 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\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 * Determines whether the link should have inverted styling if the button is styled as a link.\n * @values true, false\n * @see DtLink\n */\n linkInverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\"> (Reference) </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 click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\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 };\n },\n\n computed: {\n\n buttonListeners () {\n if (!this.assertiveOnFocus) {\n return this.$listeners;\n }\n return {\n ...this.$listeners,\n focusin: (e) => {\n this.isInFocus = true;\n },\n\n focusout: (e) => {\n this.isInFocus = false;\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 Vue.util.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 getLinkKindModifier(this.linkKind, this.linkInverted),\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.$scopedSlots.icon && this.$scopedSlots.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":["LINK_KIND_MODIFIERS","getLinkKindModifier"],"mappings":";;;;;AAAY,MAAC,wBAAwB;AAAA,EACnC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEY,MAAC,wBAAwB;AAAA,EACnC,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AACZ;AAEY,MAAC,8BAA8B;AAAA,EACzC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AACZ;AAEY,MAAC,eAAe,CAAC,UAAU,SAAS,QAAQ;AAE5C,MAAC,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AACV;AAEY,MAAC,sBAAsB;AAAA,EACjC;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS,2BAA2B,MAAM,WAAW,SAAS;AAAA,EAC/D;AAAA,EACD;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS,2BAA2B,MAAM,UAAU,UAAU;AAAA,EAC/D;AAAA,EACD;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS,2BAA2B,MAAM,SAAS,SAAS;AAAA,EAC7D;AAAA,EACD;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS,2BAA2B,OAAO,SAAS,SAAS;AAAA,EAC9D;AACH;AAEY,MAAC,oBAAoB;AAAA,EAC/B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,SAAS,2BAA4B,QAAQ,MAAM,YAAY;AAC7D,SAAO,qBAAqB,SAAS,YAAY,EAAE,qBACxC,IAAI,oBAAoB,UAAU;AAI/C;ACTA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,aAAA,OAAA,KAAA,uBAAA,EAAA,SAAA,QAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,OAAA,KAAA,2BAAA,EAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,OAAA,OAAA,KAAAA,kCAAA,EAAA,SAAA,EAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,aAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,OAAA,KAAA,qBAAA,EAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,YAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,OAAA,KAAA,qBAAA,EAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA;AAAA;AAAA,MAEA,WAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IAEA,kBAAA;AACA,UAAA,CAAA,KAAA,kBAAA;AACA,eAAA,KAAA;AAAA,MACA;AACA,aAAA;AAAA,QACA,GAAA,KAAA;AAAA,QACA,SAAA,CAAA,MAAA;AACA,eAAA,YAAA;AAAA,QACA;AAAA,QAEA,UAAA,CAAA,MAAA;AACA,eAAA,YAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,aAAA,KAAA,oBAAA,KAAA,YAAA,cAAA,KAAA,OAAA;AAAA,IACA;AAAA,IAEA,WAAA;AACA,aAAA,kBAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AACA,YAAA,QAAA,IAAA,aAAA;AAAA;AAEA,YAAA,KAAA,UAAA,KAAA,MAAA;AACA,cAAA,KAAA,KAAA,sDAAA,IAAA;AAAA,QACA;AAEA,aAAA,yBAAA,KAAA,QAAA,KAAA,MAAA,KAAA,UAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,gBAAA;AACA,UAAA,KAAA,MAAA;AACA,eAAA;AAAA,UACA;AAAA,UACAC,eAAAA,oBAAA,KAAA,UAAA,KAAA,YAAA;AAAA,UACA,sBAAA,KAAA,IAAA;AAAA,QACA;AAAA,MACA;AACA,aAAA;AAAA,QACA;AAAA,QACA,4BAAA,KAAA,UAAA;AAAA,QACA,sBAAA,KAAA,IAAA;AAAA,QACA,sBAAA,KAAA,IAAA;AAAA,QACA;AAAA,UACA,iBAAA,KAAA;AAAA,UACA,kBAAA,KAAA;AAAA,UACA,oBAAA,KAAA,WAAA;AAAA,UACA,mBAAA,KAAA,qBAAA;AAAA,UACA,iBAAA,KAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,yBAAA,QAAA,MAAA,YAAA;AACA,iBAAA,OAAA,qBAAA;AACA,YAAA,WAAA,IAAA,UAAA,SAAA,IAAA,QAAA,eAAA,IAAA,YAAA;AACA,kBAAA,KAAA,IAAA,OAAA;AACA,iBAAA;AAAA,QACA;AAAA,MACA;AACA,aAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,aAAA,KAAA,aAAA,QAAA,KAAA,aAAA,KAAA,KAAA,CAAA,KAAA;AAAA,IACA;AAAA,IAEA,aAAA;AACA,aAAA,KAAA,iBAAA,KAAA,CAAA,KAAA,OAAA;AAAA,IACA;AAAA,IAEA,uBAAA;AACA,aAAA,CAAA,KAAA,WAAA,KAAA,CAAA,OAAA,QAAA,EAAA,SAAA,KAAA,YAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -26,27 +26,32 @@ const ICON_POSITION_MODIFIERS = {
26
26
  top: "d-btn__icon--top",
27
27
  bottom: "d-btn__icon--bottom"
28
28
  };
29
- const INVALID_COMBINATION = [{
30
- circle: true,
31
- kind: "default",
32
- importance: "primary",
33
- message: _invalidCombinationMessage(true, "default", "primary")
34
- }, {
35
- circle: true,
36
- kind: "danger",
37
- importance: "outlined",
38
- message: _invalidCombinationMessage(true, "danger", "outlined")
39
- }, {
40
- circle: true,
41
- kind: "muted",
42
- importance: "primary",
43
- message: _invalidCombinationMessage(true, "muted", "primary")
44
- }, {
45
- circle: false,
46
- kind: "muted",
47
- importance: "primary",
48
- message: _invalidCombinationMessage(false, "muted", "primary")
49
- }];
29
+ const INVALID_COMBINATION = [
30
+ {
31
+ circle: true,
32
+ kind: "default",
33
+ importance: "primary",
34
+ message: _invalidCombinationMessage(true, "default", "primary")
35
+ },
36
+ {
37
+ circle: true,
38
+ kind: "danger",
39
+ importance: "outlined",
40
+ message: _invalidCombinationMessage(true, "danger", "outlined")
41
+ },
42
+ {
43
+ circle: true,
44
+ kind: "muted",
45
+ importance: "primary",
46
+ message: _invalidCombinationMessage(true, "muted", "primary")
47
+ },
48
+ {
49
+ circle: false,
50
+ kind: "muted",
51
+ importance: "primary",
52
+ message: _invalidCombinationMessage(false, "muted", "primary")
53
+ }
54
+ ];
50
55
  const BUTTON_ICON_SIZES = {
51
56
  xs: "200",
52
57
  sm: "200",
@@ -272,15 +277,25 @@ const _sfc_main = {
272
277
  methods: {
273
278
  buttonClasses() {
274
279
  if (this.link) {
275
- return ["d-link", getLinkKindModifier(this.linkKind, this.linkInverted), BUTTON_SIZE_MODIFIERS[this.size]];
280
+ return [
281
+ "d-link",
282
+ getLinkKindModifier(this.linkKind, this.linkInverted),
283
+ BUTTON_SIZE_MODIFIERS[this.size]
284
+ ];
276
285
  }
277
- return ["d-btn", BUTTON_IMPORTANCE_MODIFIERS[this.importance], BUTTON_KIND_MODIFIERS[this.kind], BUTTON_SIZE_MODIFIERS[this.size], {
278
- "d-btn--circle": this.circle,
279
- "d-btn--loading": this.loading,
280
- "d-btn--icon-only": this.isIconOnly(),
281
- "d-btn--vertical": this.isVerticalIconLayout(),
282
- "d-btn--active": this.active
283
- }];
286
+ return [
287
+ "d-btn",
288
+ BUTTON_IMPORTANCE_MODIFIERS[this.importance],
289
+ BUTTON_KIND_MODIFIERS[this.kind],
290
+ BUTTON_SIZE_MODIFIERS[this.size],
291
+ {
292
+ "d-btn--circle": this.circle,
293
+ "d-btn--loading": this.loading,
294
+ "d-btn--icon-only": this.isIconOnly(),
295
+ "d-btn--vertical": this.isVerticalIconLayout(),
296
+ "d-btn--active": this.active
297
+ }
298
+ ];
284
299
  },
285
300
  isInvalidPropCombination(circle, kind, importance) {
286
301
  for (const row of INVALID_COMBINATION) {
@@ -304,34 +319,26 @@ const _sfc_main = {
304
319
  };
305
320
  var _sfc_render = function render() {
306
321
  var _vm = this, _c = _vm._self._c;
307
- return _c("button", _vm._g({
308
- class: ["base-button__button", _vm.buttonClasses()],
309
- style: {
310
- width: _vm.width
311
- },
312
- attrs: {
313
- "data-qa": "dt-button",
314
- "type": _vm.type,
315
- "disabled": _vm.disabled,
316
- "aria-live": _vm.computedAriaLive,
317
- "aria-label": _vm.loading ? "loading" : _vm.$attrs["aria-label"]
318
- }
319
- }, _vm.buttonListeners), [_vm.shouldRenderIcon() ? _c("span", {
320
- class: ["base-button__icon", "d-btn__icon", _vm.ICON_POSITION_MODIFIERS[_vm.iconPosition]],
321
- attrs: {
322
- "data-qa": "dt-button-icon"
323
- }
324
- }, [_vm._t("icon", null, {
325
- "iconSize": _vm.iconSize
326
- })], 2) : _vm._e(), _vm.$slots.default ? _c("span", {
327
- class: ["d-btn__label", "base-button__label", _vm.labelClass],
328
- attrs: {
329
- "data-qa": "dt-button-label"
330
- }
331
- }, [_vm._t("default")], 2) : _vm._e()]);
322
+ return _c("button", _vm._g({ class: [
323
+ "base-button__button",
324
+ _vm.buttonClasses()
325
+ ], style: { width: _vm.width }, attrs: { "data-qa": "dt-button", "type": _vm.type, "disabled": _vm.disabled, "aria-live": _vm.computedAriaLive, "aria-label": _vm.loading ? "loading" : _vm.$attrs["aria-label"] } }, _vm.buttonListeners), [_vm.shouldRenderIcon() ? _c("span", { class: [
326
+ "base-button__icon",
327
+ "d-btn__icon",
328
+ _vm.ICON_POSITION_MODIFIERS[_vm.iconPosition]
329
+ ], attrs: { "data-qa": "dt-button-icon" } }, [_vm._t("icon", null, { "iconSize": _vm.iconSize })], 2) : _vm._e(), _vm.$slots.default ? _c("span", { class: ["d-btn__label", "base-button__label", _vm.labelClass], attrs: { "data-qa": "dt-button-label" } }, [_vm._t("default")], 2) : _vm._e()]);
332
330
  };
333
331
  var _sfc_staticRenderFns = [];
334
- var __component__ = /* @__PURE__ */ normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
332
+ var __component__ = /* @__PURE__ */ normalizeComponent(
333
+ _sfc_main,
334
+ _sfc_render,
335
+ _sfc_staticRenderFns,
336
+ false,
337
+ null,
338
+ null,
339
+ null,
340
+ null
341
+ );
335
342
  const DtButton = __component__.exports;
336
343
  export {
337
344
  BUTTON_ICON_SIZES,
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","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-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=\"$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 Vue from 'vue';\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, getLinkKindModifier } 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 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\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 * Determines whether the link should have inverted styling if the button is styled as a link.\n * @values true, false\n * @see DtLink\n */\n linkInverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\"> (Reference) </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 click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\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 };\n },\n\n computed: {\n\n buttonListeners () {\n if (!this.assertiveOnFocus) {\n return this.$listeners;\n }\n return {\n ...this.$listeners,\n focusin: (e) => {\n this.isInFocus = true;\n },\n\n focusout: (e) => {\n this.isInFocus = false;\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 Vue.util.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 getLinkKindModifier(this.linkKind, this.linkInverted),\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.$scopedSlots.icon && this.$scopedSlots.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","xs","sm","md","lg","xl","BUTTON_KIND_MODIFIERS","default","muted","danger","inverted","BUTTON_IMPORTANCE_MODIFIERS","clear","primary","outlined","BUTTON_TYPES","ICON_POSITION_MODIFIERS","left","right","top","bottom","INVALID_COMBINATION","circle","kind","importance","message","_invalidCombinationMessage","BUTTON_ICON_SIZES","_sfc_main","name","props","type","Boolean","iconPosition","String","validator","position","Object","keys","includes","i","link","linkKind","lk","LINK_KIND_MODIFIERS","linkInverted","disabled","t","width","size","s","labelClass","Array","loading","k","assertiveOnFocus","active","emits","data","isInFocus","computed","buttonListeners","$listeners","focusin","e","focusout","computedAriaLive","$attrs","ariaLive","iconSize","watch","$props","deep","immediate","handler","process","env","NODE_ENV","Vue","util","warn","isInvalidPropCombination","methods","buttonClasses","getLinkKindModifier","isIconOnly","isVerticalIconLayout","row","console","shouldRenderIcon","$scopedSlots","icon","$slots"],"mappings":"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"}
1
+ {"version":3,"file":"button.js","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-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=\"$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 Vue from 'vue';\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, getLinkKindModifier } 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 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\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 * Determines whether the link should have inverted styling if the button is styled as a link.\n * @values true, false\n * @see DtLink\n */\n linkInverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\"> (Reference) </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 click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\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 };\n },\n\n computed: {\n\n buttonListeners () {\n if (!this.assertiveOnFocus) {\n return this.$listeners;\n }\n return {\n ...this.$listeners,\n focusin: (e) => {\n this.isInFocus = true;\n },\n\n focusout: (e) => {\n this.isInFocus = false;\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 Vue.util.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 getLinkKindModifier(this.linkKind, this.linkInverted),\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.$scopedSlots.icon && this.$scopedSlots.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":[],"mappings":"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"}