@dialpad/dialtone-vue 3.145.1 → 3.146.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-oA-_Gotg.js → dropdown-6HXkh24e.js} +40 -45
  2. package/dist/chunks/{dropdown-oA-_Gotg.js.map → dropdown-6HXkh24e.js.map} +1 -1
  3. package/dist/chunks/{dropdown-p-Azgwov.js → dropdown-QNvAb160.js} +40 -45
  4. package/dist/chunks/{dropdown-p-Azgwov.js.map → dropdown-QNvAb160.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-QYpmdE0R.js → icon_constants-bvhFNOPu.js} +3 -2
  8. package/dist/chunks/icon_constants-bvhFNOPu.js.map +1 -0
  9. package/dist/chunks/{icon_constants-Dy4MEUJL.js → icon_constants-gIQj4mf7.js} +3 -2
  10. package/dist/chunks/icon_constants-gIQj4mf7.js.map +1 -0
  11. package/dist/chunks/{index-b_MgDylR.js → index-T15rAIdX.js} +71 -84
  12. package/dist/chunks/{index-4qgKeErp.js.map → index-T15rAIdX.js.map} +1 -1
  13. package/dist/chunks/{index-GVD15GIB.js → index-dfdrE-3M.js} +3 -12
  14. package/dist/chunks/{index-GVD15GIB.js.map → index-dfdrE-3M.js.map} +1 -1
  15. package/dist/chunks/{index-lu2o2f4r.js → index-fEp0B-5Z.js} +3 -12
  16. package/dist/chunks/{index-lu2o2f4r.js.map → index-fEp0B-5Z.js.map} +1 -1
  17. package/dist/chunks/{index-4qgKeErp.js → index-ouh7Bvm-.js} +71 -84
  18. package/dist/chunks/{index-b_MgDylR.js.map → index-ouh7Bvm-.js.map} +1 -1
  19. package/dist/chunks/{input-NmYDD5bn.js → input-HIysg24t.js} +3 -9
  20. package/dist/chunks/{input-ttnte8zB.js.map → input-HIysg24t.js.map} +1 -1
  21. package/dist/chunks/{input-ttnte8zB.js → input-dLLo3Wtg.js} +3 -9
  22. package/dist/chunks/{input-NmYDD5bn.js.map → input-dLLo3Wtg.js.map} +1 -1
  23. package/dist/chunks/{input_group-jWnq2DJT.js → input_group-hV1WT2it.js} +4 -2
  24. package/dist/chunks/{input_group-M-D25pOJ.js.map → input_group-hV1WT2it.js.map} +1 -1
  25. package/dist/chunks/{input_group-M-D25pOJ.js → input_group-rE6nhye8.js} +4 -2
  26. package/dist/chunks/{input_group-jWnq2DJT.js.map → input_group-rE6nhye8.js.map} +1 -1
  27. package/dist/chunks/{keyboard_list_navigation-ScXhrxya.js → keyboard_list_navigation-YIqTuw1W.js} +6 -5
  28. package/dist/chunks/{keyboard_list_navigation-fJnl_Iox.js.map → keyboard_list_navigation-YIqTuw1W.js.map} +1 -1
  29. package/dist/chunks/{keyboard_list_navigation-fJnl_Iox.js → keyboard_list_navigation-x3D6RcC7.js} +6 -5
  30. package/dist/chunks/{keyboard_list_navigation-ScXhrxya.js.map → keyboard_list_navigation-x3D6RcC7.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-XOr4kiNZ.js → modal-8X6poIZW.js} +4 -2
  36. package/dist/chunks/{modal-XOr4kiNZ.js.map → modal-8X6poIZW.js.map} +1 -1
  37. package/dist/chunks/{modal-VgxXAQFP.js → modal-OaWxzqNt.js} +4 -2
  38. package/dist/chunks/{modal-VgxXAQFP.js.map → modal-OaWxzqNt.js.map} +1 -1
  39. package/dist/chunks/{notice_action-WTucGhvr.js → notice_action-3ed0uIMN.js} +40 -61
  40. package/dist/chunks/{notice_action-p-ePanW_.js.map → notice_action-3ed0uIMN.js.map} +1 -1
  41. package/dist/chunks/{notice_action-p-ePanW_.js → notice_action-e08Lw5W6.js} +40 -61
  42. package/dist/chunks/{notice_action-WTucGhvr.js.map → notice_action-e08Lw5W6.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-WsOUIY-m.js → popover_constants-6YkPPbnk.js} +26 -47
  46. package/dist/chunks/{popover_constants-XnGWXaxX.js.map → popover_constants-6YkPPbnk.js.map} +1 -1
  47. package/dist/chunks/{popover_constants-XnGWXaxX.js → popover_constants-h9MD6WUt.js} +26 -47
  48. package/dist/chunks/{popover_constants-WsOUIY-m.js.map → popover_constants-h9MD6WUt.js.map} +1 -1
  49. package/dist/chunks/{sr_only_close_button-3EdsV-dH.js → sr_only_close_button-Ji3Zlts6.js} +4 -4
  50. package/dist/chunks/{sr_only_close_button-3EdsV-dH.js.map → sr_only_close_button-Ji3Zlts6.js.map} +1 -1
  51. package/dist/chunks/{sr_only_close_button-xGrHFjwA.js → sr_only_close_button-gKr0Vlbz.js} +4 -4
  52. package/dist/chunks/{sr_only_close_button-xGrHFjwA.js.map → sr_only_close_button-gKr0Vlbz.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-qc3f42Yp.js → tab-X7IvNGTl.js} +46 -49
  56. package/dist/chunks/{tab-qc3f42Yp.js.map → tab-X7IvNGTl.js.map} +1 -1
  57. package/dist/chunks/{tab-RTDgnD9-.js → tab-aD6t0MNo.js} +46 -49
  58. package/dist/chunks/{tab-RTDgnD9-.js.map → tab-aD6t0MNo.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 +3 -1
  62. package/dist/common/dates.cjs.map +1 -1
  63. package/dist/common/dates.js +3 -1
  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 +11 -45
  70. package/dist/common/utils.cjs.map +1 -1
  71. package/dist/common/utils.js +11 -45
  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 +87 -108
  79. package/dist/lib/attachment-carousel.cjs.map +1 -1
  80. package/dist/lib/attachment-carousel.js +87 -108
  81. package/dist/lib/attachment-carousel.js.map +1 -1
  82. package/dist/lib/avatar.cjs +56 -88
  83. package/dist/lib/avatar.cjs.map +1 -1
  84. package/dist/lib/avatar.js +56 -88
  85. package/dist/lib/avatar.js.map +1 -1
  86. package/dist/lib/badge.cjs +15 -31
  87. package/dist/lib/badge.cjs.map +1 -1
  88. package/dist/lib/badge.js +15 -31
  89. package/dist/lib/badge.js.map +1 -1
  90. package/dist/lib/banner.cjs +38 -56
  91. package/dist/lib/banner.cjs.map +1 -1
  92. package/dist/lib/banner.js +38 -56
  93. package/dist/lib/banner.js.map +1 -1
  94. package/dist/lib/breadcrumbs.cjs +25 -36
  95. package/dist/lib/breadcrumbs.cjs.map +1 -1
  96. package/dist/lib/breadcrumbs.js +25 -36
  97. package/dist/lib/breadcrumbs.js.map +1 -1
  98. package/dist/lib/button-group.cjs +2 -7
  99. package/dist/lib/button-group.cjs.map +1 -1
  100. package/dist/lib/button-group.js +2 -7
  101. package/dist/lib/button-group.js.map +1 -1
  102. package/dist/lib/button.cjs +44 -69
  103. package/dist/lib/button.cjs.map +1 -1
  104. package/dist/lib/button.js +44 -69
  105. package/dist/lib/button.js.map +1 -1
  106. package/dist/lib/callbar-button-with-popover.cjs +68 -81
  107. package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
  108. package/dist/lib/callbar-button-with-popover.js +68 -81
  109. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  110. package/dist/lib/callbar-button.cjs +32 -45
  111. package/dist/lib/callbar-button.cjs.map +1 -1
  112. package/dist/lib/callbar-button.js +32 -45
  113. package/dist/lib/callbar-button.js.map +1 -1
  114. package/dist/lib/callbox.cjs +38 -57
  115. package/dist/lib/callbox.cjs.map +1 -1
  116. package/dist/lib/callbox.js +38 -57
  117. package/dist/lib/callbox.js.map +1 -1
  118. package/dist/lib/card.cjs +13 -33
  119. package/dist/lib/card.cjs.map +1 -1
  120. package/dist/lib/card.js +13 -33
  121. package/dist/lib/card.js.map +1 -1
  122. package/dist/lib/checkbox-group.cjs +2 -5
  123. package/dist/lib/checkbox-group.cjs.map +1 -1
  124. package/dist/lib/checkbox-group.js +2 -5
  125. package/dist/lib/checkbox-group.js.map +1 -1
  126. package/dist/lib/checkbox.cjs +41 -45
  127. package/dist/lib/checkbox.cjs.map +1 -1
  128. package/dist/lib/checkbox.js +41 -45
  129. package/dist/lib/checkbox.js.map +1 -1
  130. package/dist/lib/chip.cjs +38 -53
  131. package/dist/lib/chip.cjs.map +1 -1
  132. package/dist/lib/chip.js +38 -53
  133. package/dist/lib/chip.js.map +1 -1
  134. package/dist/lib/codeblock.cjs +4 -6
  135. package/dist/lib/codeblock.cjs.map +1 -1
  136. package/dist/lib/codeblock.js +4 -6
  137. package/dist/lib/codeblock.js.map +1 -1
  138. package/dist/lib/collapsible.cjs +62 -76
  139. package/dist/lib/collapsible.cjs.map +1 -1
  140. package/dist/lib/collapsible.js +62 -76
  141. package/dist/lib/collapsible.js.map +1 -1
  142. package/dist/lib/combobox-multi-select.cjs +75 -88
  143. package/dist/lib/combobox-multi-select.cjs.map +1 -1
  144. package/dist/lib/combobox-multi-select.js +75 -88
  145. package/dist/lib/combobox-multi-select.js.map +1 -1
  146. package/dist/lib/combobox-with-popover.cjs +77 -85
  147. package/dist/lib/combobox-with-popover.cjs.map +1 -1
  148. package/dist/lib/combobox-with-popover.js +77 -85
  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 +65 -89
  153. package/dist/lib/contact-centers-row.cjs.map +1 -1
  154. package/dist/lib/contact-centers-row.js +65 -89
  155. package/dist/lib/contact-centers-row.js.map +1 -1
  156. package/dist/lib/contact-info.cjs +58 -73
  157. package/dist/lib/contact-info.cjs.map +1 -1
  158. package/dist/lib/contact-info.js +58 -73
  159. package/dist/lib/contact-info.js.map +1 -1
  160. package/dist/lib/contact-row.cjs +37 -47
  161. package/dist/lib/contact-row.cjs.map +1 -1
  162. package/dist/lib/contact-row.js +37 -47
  163. package/dist/lib/contact-row.js.map +1 -1
  164. package/dist/lib/datepicker.cjs +267 -263
  165. package/dist/lib/datepicker.cjs.map +1 -1
  166. package/dist/lib/datepicker.js +267 -263
  167. package/dist/lib/datepicker.js.map +1 -1
  168. package/dist/lib/description-list.cjs +9 -14
  169. package/dist/lib/description-list.cjs.map +1 -1
  170. package/dist/lib/description-list.js +9 -14
  171. package/dist/lib/description-list.js.map +1 -1
  172. package/dist/lib/dropdown.cjs +6 -6
  173. package/dist/lib/dropdown.cjs.map +1 -1
  174. package/dist/lib/dropdown.js +6 -6
  175. package/dist/lib/dropdown.js.map +1 -1
  176. package/dist/lib/editor.cjs +312 -249
  177. package/dist/lib/editor.cjs.map +1 -1
  178. package/dist/lib/editor.js +312 -249
  179. package/dist/lib/editor.js.map +1 -1
  180. package/dist/lib/emoji-picker.cjs +387 -419
  181. package/dist/lib/emoji-picker.cjs.map +1 -1
  182. package/dist/lib/emoji-picker.js +387 -419
  183. package/dist/lib/emoji-picker.js.map +1 -1
  184. package/dist/lib/emoji-row.cjs +59 -69
  185. package/dist/lib/emoji-row.cjs.map +1 -1
  186. package/dist/lib/emoji-row.js +59 -69
  187. package/dist/lib/emoji-row.js.map +1 -1
  188. package/dist/lib/emoji-text-wrapper.cjs +13 -12
  189. package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
  190. package/dist/lib/emoji-text-wrapper.js +13 -12
  191. package/dist/lib/emoji-text-wrapper.js.map +1 -1
  192. package/dist/lib/emoji.cjs +19 -23
  193. package/dist/lib/emoji.cjs.map +1 -1
  194. package/dist/lib/emoji.js +19 -23
  195. package/dist/lib/emoji.js.map +1 -1
  196. package/dist/lib/empty-state.cjs +20 -30
  197. package/dist/lib/empty-state.cjs.map +1 -1
  198. package/dist/lib/empty-state.js +20 -30
  199. package/dist/lib/empty-state.js.map +1 -1
  200. package/dist/lib/feed-item-row.cjs +43 -74
  201. package/dist/lib/feed-item-row.cjs.map +1 -1
  202. package/dist/lib/feed-item-row.js +43 -74
  203. package/dist/lib/feed-item-row.js.map +1 -1
  204. package/dist/lib/feed-pill.cjs +45 -55
  205. package/dist/lib/feed-pill.cjs.map +1 -1
  206. package/dist/lib/feed-pill.js +45 -55
  207. package/dist/lib/feed-pill.js.map +1 -1
  208. package/dist/lib/general-row.cjs +115 -165
  209. package/dist/lib/general-row.cjs.map +1 -1
  210. package/dist/lib/general-row.js +115 -165
  211. package/dist/lib/general-row.js.map +1 -1
  212. package/dist/lib/group-row.cjs +7 -9
  213. package/dist/lib/group-row.cjs.map +1 -1
  214. package/dist/lib/group-row.js +7 -9
  215. package/dist/lib/group-row.js.map +1 -1
  216. package/dist/lib/grouped-chip.cjs +27 -48
  217. package/dist/lib/grouped-chip.cjs.map +1 -1
  218. package/dist/lib/grouped-chip.js +27 -48
  219. package/dist/lib/grouped-chip.js.map +1 -1
  220. package/dist/lib/hovercard.cjs +25 -33
  221. package/dist/lib/hovercard.cjs.map +1 -1
  222. package/dist/lib/hovercard.js +25 -33
  223. package/dist/lib/hovercard.js.map +1 -1
  224. package/dist/lib/icon.cjs +1 -1
  225. package/dist/lib/icon.cjs.map +1 -1
  226. package/dist/lib/icon.js +1 -1
  227. package/dist/lib/icon.js.map +1 -1
  228. package/dist/lib/illustration.cjs +2 -1
  229. package/dist/lib/illustration.cjs.map +1 -1
  230. package/dist/lib/illustration.js +2 -1
  231. package/dist/lib/illustration.js.map +1 -1
  232. package/dist/lib/image-viewer.cjs +62 -66
  233. package/dist/lib/image-viewer.cjs.map +1 -1
  234. package/dist/lib/image-viewer.js +62 -66
  235. package/dist/lib/image-viewer.js.map +1 -1
  236. package/dist/lib/input-group.cjs +15 -19
  237. package/dist/lib/input-group.cjs.map +1 -1
  238. package/dist/lib/input-group.js +15 -19
  239. package/dist/lib/input-group.js.map +1 -1
  240. package/dist/lib/input.cjs +76 -104
  241. package/dist/lib/input.cjs.map +1 -1
  242. package/dist/lib/input.js +76 -104
  243. package/dist/lib/input.js.map +1 -1
  244. package/dist/lib/item-layout.cjs +10 -27
  245. package/dist/lib/item-layout.cjs.map +1 -1
  246. package/dist/lib/item-layout.js +10 -27
  247. package/dist/lib/item-layout.js.map +1 -1
  248. package/dist/lib/ivr-node.cjs +80 -89
  249. package/dist/lib/ivr-node.cjs.map +1 -1
  250. package/dist/lib/ivr-node.js +80 -89
  251. package/dist/lib/ivr-node.js.map +1 -1
  252. package/dist/lib/keyboard-shortcut.cjs +26 -31
  253. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  254. package/dist/lib/keyboard-shortcut.js +26 -31
  255. package/dist/lib/keyboard-shortcut.js.map +1 -1
  256. package/dist/lib/lazy-show.cjs +6 -8
  257. package/dist/lib/lazy-show.cjs.map +1 -1
  258. package/dist/lib/lazy-show.js +6 -8
  259. package/dist/lib/lazy-show.js.map +1 -1
  260. package/dist/lib/link.cjs +2 -7
  261. package/dist/lib/link.cjs.map +1 -1
  262. package/dist/lib/link.js +2 -7
  263. package/dist/lib/link.js.map +1 -1
  264. package/dist/lib/list-item-group.cjs +7 -14
  265. package/dist/lib/list-item-group.cjs.map +1 -1
  266. package/dist/lib/list-item-group.js +7 -14
  267. package/dist/lib/list-item-group.js.map +1 -1
  268. package/dist/lib/list-item.cjs +24 -25
  269. package/dist/lib/list-item.cjs.map +1 -1
  270. package/dist/lib/list-item.js +24 -25
  271. package/dist/lib/list-item.js.map +1 -1
  272. package/dist/lib/message-input.cjs +227 -264
  273. package/dist/lib/message-input.cjs.map +1 -1
  274. package/dist/lib/message-input.js +227 -264
  275. package/dist/lib/message-input.js.map +1 -1
  276. package/dist/lib/modal.cjs +59 -99
  277. package/dist/lib/modal.cjs.map +1 -1
  278. package/dist/lib/modal.js +59 -99
  279. package/dist/lib/modal.js.map +1 -1
  280. package/dist/lib/notice.cjs +33 -46
  281. package/dist/lib/notice.cjs.map +1 -1
  282. package/dist/lib/notice.js +33 -46
  283. package/dist/lib/notice.js.map +1 -1
  284. package/dist/lib/pagination.cjs +49 -61
  285. package/dist/lib/pagination.cjs.map +1 -1
  286. package/dist/lib/pagination.js +49 -61
  287. package/dist/lib/pagination.js.map +1 -1
  288. package/dist/lib/popover.cjs +133 -156
  289. package/dist/lib/popover.cjs.map +1 -1
  290. package/dist/lib/popover.js +134 -157
  291. package/dist/lib/popover.js.map +1 -1
  292. package/dist/lib/presence.cjs +9 -17
  293. package/dist/lib/presence.cjs.map +1 -1
  294. package/dist/lib/presence.js +9 -17
  295. package/dist/lib/presence.js.map +1 -1
  296. package/dist/lib/radio-group.cjs +1 -1
  297. package/dist/lib/radio-group.cjs.map +1 -1
  298. package/dist/lib/radio-group.js +1 -1
  299. package/dist/lib/radio-group.js.map +1 -1
  300. package/dist/lib/radio.cjs +34 -41
  301. package/dist/lib/radio.cjs.map +1 -1
  302. package/dist/lib/radio.js +34 -41
  303. package/dist/lib/radio.js.map +1 -1
  304. package/dist/lib/rich-text-editor.cjs +292 -288
  305. package/dist/lib/rich-text-editor.cjs.map +1 -1
  306. package/dist/lib/rich-text-editor.js +292 -288
  307. package/dist/lib/rich-text-editor.js.map +1 -1
  308. package/dist/lib/root-layout.cjs +24 -39
  309. package/dist/lib/root-layout.cjs.map +1 -1
  310. package/dist/lib/root-layout.js +24 -39
  311. package/dist/lib/root-layout.js.map +1 -1
  312. package/dist/lib/scrollbar-directive.cjs.map +1 -1
  313. package/dist/lib/scrollbar-directive.js.map +1 -1
  314. package/dist/lib/scroller.cjs +100 -83
  315. package/dist/lib/scroller.cjs.map +1 -1
  316. package/dist/lib/scroller.js +100 -83
  317. package/dist/lib/scroller.js.map +1 -1
  318. package/dist/lib/select-menu.cjs +40 -67
  319. package/dist/lib/select-menu.cjs.map +1 -1
  320. package/dist/lib/select-menu.js +40 -67
  321. package/dist/lib/select-menu.js.map +1 -1
  322. package/dist/lib/settings-menu-button.cjs +10 -16
  323. package/dist/lib/settings-menu-button.cjs.map +1 -1
  324. package/dist/lib/settings-menu-button.js +10 -16
  325. package/dist/lib/settings-menu-button.js.map +1 -1
  326. package/dist/lib/skeleton.cjs +74 -93
  327. package/dist/lib/skeleton.cjs.map +1 -1
  328. package/dist/lib/skeleton.js +74 -93
  329. package/dist/lib/skeleton.js.map +1 -1
  330. package/dist/lib/split-button.cjs +68 -74
  331. package/dist/lib/split-button.cjs.map +1 -1
  332. package/dist/lib/split-button.js +68 -74
  333. package/dist/lib/split-button.js.map +1 -1
  334. package/dist/lib/stack.cjs +18 -26
  335. package/dist/lib/stack.cjs.map +1 -1
  336. package/dist/lib/stack.js +18 -26
  337. package/dist/lib/stack.js.map +1 -1
  338. package/dist/lib/tabs.cjs +3 -7
  339. package/dist/lib/tabs.cjs.map +1 -1
  340. package/dist/lib/tabs.js +3 -7
  341. package/dist/lib/tabs.js.map +1 -1
  342. package/dist/lib/time-pill.cjs.map +1 -1
  343. package/dist/lib/time-pill.js.map +1 -1
  344. package/dist/lib/toast.cjs +35 -51
  345. package/dist/lib/toast.cjs.map +1 -1
  346. package/dist/lib/toast.js +35 -51
  347. package/dist/lib/toast.js.map +1 -1
  348. package/dist/lib/toggle.cjs +24 -34
  349. package/dist/lib/toggle.cjs.map +1 -1
  350. package/dist/lib/toggle.js +24 -34
  351. package/dist/lib/toggle.js.map +1 -1
  352. package/dist/lib/tooltip-directive.cjs +26 -19
  353. package/dist/lib/tooltip-directive.cjs.map +1 -1
  354. package/dist/lib/tooltip-directive.js +26 -19
  355. package/dist/lib/tooltip-directive.js.map +1 -1
  356. package/dist/lib/tooltip.cjs +21 -32
  357. package/dist/lib/tooltip.cjs.map +1 -1
  358. package/dist/lib/tooltip.js +22 -33
  359. package/dist/lib/tooltip.js.map +1 -1
  360. package/dist/lib/top-banner-info.cjs +8 -23
  361. package/dist/lib/top-banner-info.cjs.map +1 -1
  362. package/dist/lib/top-banner-info.js +8 -23
  363. package/dist/lib/top-banner-info.js.map +1 -1
  364. package/dist/lib/unread-pill.cjs +8 -11
  365. package/dist/lib/unread-pill.cjs.map +1 -1
  366. package/dist/lib/unread-pill.js +8 -11
  367. package/dist/lib/unread-pill.js.map +1 -1
  368. package/dist/lib/validation-messages.cjs +14 -17
  369. package/dist/lib/validation-messages.cjs.map +1 -1
  370. package/dist/lib/validation-messages.js +14 -17
  371. package/dist/lib/validation-messages.js.map +1 -1
  372. package/dist/types/components/button/button.vue.d.ts +1 -1
  373. package/dist/types/components/chip/chip.vue.d.ts +1 -1
  374. package/dist/types/components/combobox/combobox.vue.d.ts +1 -1
  375. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
  376. package/dist/types/components/icon/icon.vue.d.ts +2 -2
  377. package/dist/types/components/icon/icon_constants.d.ts +1 -1
  378. package/dist/types/components/icon/icon_constants.d.ts.map +1 -1
  379. package/dist/types/components/illustration/illustration_constants.d.ts +1 -1
  380. package/dist/types/components/illustration/illustration_constants.d.ts.map +1 -1
  381. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +21 -0
  382. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  383. package/dist/types/components/input/input.vue.d.ts +1 -1
  384. package/dist/types/components/modal/modal.vue.d.ts +1 -1
  385. package/dist/types/components/notice/notice.vue.d.ts +1 -1
  386. package/dist/types/components/radio/radio.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/scroller/modules/scroller_item.vue.d.ts +1 -1
  389. package/dist/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
  390. package/dist/types/components/tabs/tab.vue.d.ts +1 -1
  391. package/dist/types/components/toast/toast.vue.d.ts +2 -2
  392. package/dist/types/components/tooltip/tooltip.vue.d.ts +1 -1
  393. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
  394. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
  395. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  396. package/package.json +3 -2
  397. package/dist/chunks/icon_constants-Dy4MEUJL.js.map +0 -1
  398. package/dist/chunks/icon_constants-QYpmdE0R.js.map +0 -1
@@ -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-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, 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 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\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 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 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 hasSlotContent(this.$slots.icon) && !this.link;\n },\n\n isIconOnly () {\n return this.shouldRenderIcon() && !hasSlotContent(this.$slots.default);\n },\n\n isVerticalIconLayout () {\n return !this.isIconOnly() && ['top', 'bottom'].includes(this.iconPosition);\n },\n },\n};\n</script>\n"],"names":["_openBlock","_createElementBlock","_mergeProps","_toHandlers","_normalizeClass","_renderSlot"],"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;ACPA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,aAAa,OAAO,KAAK,uBAAuB,EAAE,SAAS,QAAQ;AAAA,IAChF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,MAAM,OAAO,KAAK,2BAA2B,EAAE,SAAS,CAAC;AAAA,IACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,OAAO,OAAO,KAAK,mBAAmB,EAAE,SAAS,EAAE;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,MAAM,aAAa,SAAS,CAAC;AAAA,IAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,MAAM,OAAO,KAAK,qBAAqB,EAAE,SAAS,CAAC;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA,IAKD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,MAAM,OAAO,KAAK,qBAAqB,EAAE,SAAS,CAAC;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL;AAAA;AAAA,MAEA,WAAW;AAAA,MACX;AAAA;EAEH;AAAA,EAED,UAAU;AAAA,IAER,kBAAmB;AACjB,aAAO;AAAA,QACL,SAAS,CAAC,MAAM;AACd,eAAK,YAAY,KAAK;AACtB,eAAK,MAAM,WAAW,CAAC;AAAA,QACxB;AAAA,QAED,UAAU,CAAC,MAAM;AACf,eAAK,YAAY;AACjB,eAAK,MAAM,YAAY,CAAC;AAAA,QACzB;AAAA;IAEJ;AAAA,IAED,mBAAoB;AAClB,aAAO,KAAK,oBAAoB,KAAK,YAAY,cAAc,KAAK,OAAO;AAAA,IAC5E;AAAA,IAED,WAAY;AACV,aAAO,kBAAkB,KAAK,IAAI;AAAA,IACnC;AAAA,EACF;AAAA,EAED,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAW;AACT,YAAI,QAAQ,IAAI,aAAa;AAAc;AAE3C,YAAI,KAAK,UAAU,KAAK,MAAM;AAC5B,eAAK,sDAAsD,IAAI;AAAA,QACjE;AAEA,aAAK,yBAAyB,KAAK,QAAQ,KAAK,MAAM,KAAK,UAAU;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AAAA,EAED,SAAS;AAAA,IACP,gBAAiB;AACf,UAAI,KAAK,MAAM;AACb,eAAO;AAAA,UACL;AAAA,UACA,oBAAoB,KAAK,UAAU,KAAK,YAAY;AAAA,UACpD,sBAAsB,KAAK,IAAI;AAAA;MAEnC;AACA,aAAO;AAAA,QACL;AAAA,QACA,4BAA4B,KAAK,UAAU;AAAA,QAC3C,sBAAsB,KAAK,IAAI;AAAA,QAC/B,sBAAsB,KAAK,IAAI;AAAA,QAC/B;AAAA,UACE,iBAAiB,KAAK;AAAA,UACtB,kBAAkB,KAAK;AAAA,UACvB,oBAAoB,KAAK,WAAY;AAAA,UACrC,mBAAmB,KAAK,qBAAsB;AAAA,UAC9C,iBAAiB,KAAK;AAAA,QACvB;AAAA;IAEJ;AAAA,IAED,yBAA0B,QAAQ,MAAM,YAAY;AAClD,iBAAW,OAAO,qBAAqB;AACrC,YAAI,WAAW,IAAI,UAAU,SAAS,IAAI,QAAQ,eAAe,IAAI,YAAY;AAC/E,kBAAQ,KAAK,IAAI,OAAO;AACxB,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACR;AAAA,IAED,mBAAoB;AAClB,aAAO,eAAe,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK;AAAA,IAClD;AAAA,IAED,aAAc;AACZ,aAAO,KAAK,sBAAsB,CAAC,eAAe,KAAK,OAAO,OAAO;AAAA,IACtE;AAAA,IAED,uBAAwB;AACtB,aAAO,CAAC,KAAK,WAAU,KAAM,CAAC,OAAO,QAAQ,EAAE,SAAS,KAAK,YAAY;AAAA,IAC1E;AAAA,EACF;AACH;;;AArVE,SAAAA,UAAA,GAAAC,mBAsCS,UAtCTC,WAsCS;AAAA,IArCN,OAAK;AAAA;MAAuC,SAAa,cAAA;AAAA;IAI1D,WAAQ;AAAA,IACP,MAAM,OAAI;AAAA,IACV,UAAU,OAAQ;AAAA,IAClB,gBAAgB,OAAK,MAAA;AAAA,IACrB,aAAW,SAAgB;AAAA,IAC3B,cAAY,OAAO,UAAA,YAAe,KAAM,OAAA,YAAA;AAAA,KACjC,KAAM,QACdC,WAAsB,SAAD,iBAAA,IAAA,CAAA,GAAA;AAAA,IAIb,SAAgB,iBAAA,kBADxBF,mBAcO,QAAA;AAAA;MAZL,WAAQ;AAAA,MACP,OAAKG,eAAA;AAAA;;QAAgE,MAAA,wBAAwB,OAAY,YAAA;AAAA;;MAO1GC,WAGE,KAAA,QAAA,QAAA,EADC,UAAW,SAAQ,UAAA;AAAA;IAIhB,MAAc,eAAC,KAAM,OAAC,OAAO,kBADrCJ,mBAOO,QAAA;AAAA;MALL,WAAQ;AAAA,MACP,6DAA8C,OAAU,UAAA,CAAA;AAAA;MAGzDI,WAAQ,KAAA,QAAA,SAAA;AAAA;;;;"}
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-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, 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 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\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 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 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 hasSlotContent(this.$slots.icon) && !this.link;\n },\n\n isIconOnly () {\n return this.shouldRenderIcon() && !hasSlotContent(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","inheritAttrs","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","hasSlotContent","computed","buttonListeners","focusin","e","$emit","focusout","computedAriaLive","$attrs","ariaLive","iconSize","watch","$props","deep","immediate","handler","process","env","NODE_ENV","warn","isInvalidPropCombination","methods","buttonClasses","getLinkKindModifier","isIconOnly","isVerticalIconLayout","row","console","shouldRenderIcon","$slots","icon","_openBlock","_createElementBlock","_mergeProps","class","$options","style","_ctx","_toHandlers","_normalizeClass","$data","_renderSlot"],"mappings":"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"}
@@ -9,18 +9,23 @@ const lib_button = require("./button.cjs");
9
9
  const lib_icon = require("./icon.cjs");
10
10
  require("../common/constants.cjs");
11
11
  require("./tooltip.cjs");
12
- require("../chunks/popover_constants-XnGWXaxX.js");
12
+ require("../chunks/popover_constants-h9MD6WUt.js");
13
13
  require("tippy.js");
14
- require("../chunks/modal-VgxXAQFP.js");
15
- require("../chunks/sr_only_close_button-xGrHFjwA.js");
14
+ require("../chunks/modal-OaWxzqNt.js");
15
+ require("../chunks/sr_only_close_button-gKr0Vlbz.js");
16
16
  require("./lazy-show.cjs");
17
17
  require("../chunks/link_constants-x8NwdqmA.js");
18
18
  require("@dialpad/dialtone-icons/vue3");
19
- require("../chunks/icon_constants-QYpmdE0R.js");
19
+ require("../chunks/icon_constants-bvhFNOPu.js");
20
20
  require("@dialpad/dialtone-icons/icons.json");
21
21
  const _sfc_main = {
22
22
  name: "DtRecipeCallbarButtonWithPopover",
23
- components: { DtRecipeCallbarButton: lib_callbarButton.DtRecipeCallbarButton, DtPopover: lib_popover.DtPopover, DtButton: lib_button.DtButton, DtIcon: lib_icon.DtIcon },
23
+ components: {
24
+ DtRecipeCallbarButton: lib_callbarButton.DtRecipeCallbarButton,
25
+ DtPopover: lib_popover.DtPopover,
26
+ DtButton: lib_button.DtButton,
27
+ DtIcon: lib_icon.DtIcon
28
+ },
24
29
  /* inheritAttrs: false is generally an option we want to set on library
25
30
  components. This allows any attributes passed in that are not recognized
26
31
  as props to be passed down to another element or component using v-bind:$attrs
@@ -250,88 +255,70 @@ const _sfc_main = {
250
255
  }
251
256
  }
252
257
  };
253
- const _hoisted_1 = { class: "dt-recipe--callbar-button-with-popover" };
258
+ const _hoisted_1 = {
259
+ class: "dt-recipe--callbar-button-with-popover"
260
+ };
254
261
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
255
262
  const _component_dt_recipe_callbar_button = vue.resolveComponent("dt-recipe-callbar-button");
256
263
  const _component_dt_icon = vue.resolveComponent("dt-icon");
257
264
  const _component_dt_button = vue.resolveComponent("dt-button");
258
265
  const _component_dt_popover = vue.resolveComponent("dt-popover");
259
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
260
- vue.createVNode(_component_dt_recipe_callbar_button, {
261
- "aria-label": $props.ariaLabel,
262
- disabled: $props.disabled,
263
- active: $props.active,
264
- danger: $props.danger,
265
- "button-class": $props.buttonClass,
266
- "button-width-size": $props.buttonWidthSize,
267
- "text-class": $props.textClass,
268
- class: "dt-recipe--callbar-button-with-popover--main-button",
269
- onClick: $options.buttonClick
266
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [vue.createVNode(_component_dt_recipe_callbar_button, {
267
+ "aria-label": $props.ariaLabel,
268
+ disabled: $props.disabled,
269
+ active: $props.active,
270
+ danger: $props.danger,
271
+ "button-class": $props.buttonClass,
272
+ "button-width-size": $props.buttonWidthSize,
273
+ "text-class": $props.textClass,
274
+ class: "dt-recipe--callbar-button-with-popover--main-button",
275
+ onClick: $options.buttonClick
276
+ }, {
277
+ icon: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "icon")]),
278
+ tooltip: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "tooltip")]),
279
+ default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default")]),
280
+ _: 3
281
+ }, 8, ["aria-label", "disabled", "active", "danger", "button-class", "button-width-size", "text-class", "onClick"]), $options.showArrowButton ? (vue.openBlock(), vue.createBlock(_component_dt_popover, vue.mergeProps({
282
+ key: 0,
283
+ id: $props.id,
284
+ modal: false,
285
+ open: $data.open,
286
+ placement: $props.placement,
287
+ "initial-focus-element": $props.initialFocusElement,
288
+ "show-close-button": $props.showCloseButton,
289
+ offset: $props.offset,
290
+ padding: "none",
291
+ class: "dt-recipe--callbar-button-with-popover--popover-wrapper",
292
+ "dialog-class": ["dt-recipe--callbar-button-with-popover--popover", $props.contentClass],
293
+ "header-class": "d-d-flex d-ai-center d-fw-normal d-px12"
294
+ }, _ctx.$attrs, {
295
+ "open-popover": $options.showPopover,
296
+ onOpened: $options.onModalIsOpened
297
+ }), {
298
+ anchor: vue.withCtx(() => [vue.createVNode(_component_dt_button, {
299
+ circle: "",
300
+ importance: "clear",
301
+ size: "lg",
302
+ class: vue.normalizeClass(["dt-recipe--callbar-button-with-popover--arrow", {
303
+ "dt-recipe--callbar-button-with-popover--arrow--large": !$options.isCompactMode
304
+ }]),
305
+ width: "2rem",
306
+ "aria-label": $props.arrowButtonLabel,
307
+ active: $data.open,
308
+ onClick: $options.arrowClick
270
309
  }, {
271
- icon: vue.withCtx(() => [
272
- vue.renderSlot(_ctx.$slots, "icon")
273
- ]),
274
- tooltip: vue.withCtx(() => [
275
- vue.renderSlot(_ctx.$slots, "tooltip")
276
- ]),
277
- default: vue.withCtx(() => [
278
- vue.renderSlot(_ctx.$slots, "default")
279
- ]),
280
- _: 3
281
- }, 8, ["aria-label", "disabled", "active", "danger", "button-class", "button-width-size", "text-class", "onClick"]),
282
- $options.showArrowButton ? (vue.openBlock(), vue.createBlock(_component_dt_popover, vue.mergeProps({
283
- key: 0,
284
- id: $props.id,
285
- modal: false,
286
- open: $data.open,
287
- placement: $props.placement,
288
- "initial-focus-element": $props.initialFocusElement,
289
- "show-close-button": $props.showCloseButton,
290
- offset: $props.offset,
291
- padding: "none",
292
- class: "dt-recipe--callbar-button-with-popover--popover-wrapper",
293
- "dialog-class": ["dt-recipe--callbar-button-with-popover--popover", $props.contentClass],
294
- "header-class": "d-d-flex d-ai-center d-fw-normal d-px12"
295
- }, _ctx.$attrs, {
296
- "open-popover": $options.showPopover,
297
- onOpened: $options.onModalIsOpened
298
- }), {
299
- anchor: vue.withCtx(() => [
300
- vue.createVNode(_component_dt_button, {
301
- circle: "",
302
- importance: "clear",
303
- size: "lg",
304
- class: vue.normalizeClass([
305
- "dt-recipe--callbar-button-with-popover--arrow",
306
- { "dt-recipe--callbar-button-with-popover--arrow--large": !$options.isCompactMode }
307
- ]),
308
- width: "2rem",
309
- "aria-label": $props.arrowButtonLabel,
310
- active: $data.open,
311
- onClick: $options.arrowClick
312
- }, {
313
- icon: vue.withCtx(() => [
314
- vue.createVNode(_component_dt_icon, {
315
- name: "chevron-up",
316
- class: "dt-recipe--callbar-button-with-popover--arrow__icon",
317
- size: "200"
318
- })
319
- ]),
320
- _: 1
321
- }, 8, ["class", "aria-label", "active", "onClick"])
322
- ]),
323
- content: vue.withCtx(() => [
324
- vue.renderSlot(_ctx.$slots, "content")
325
- ]),
326
- headerContent: vue.withCtx(() => [
327
- vue.renderSlot(_ctx.$slots, "headerContent")
328
- ]),
329
- footerContent: vue.withCtx(() => [
330
- vue.renderSlot(_ctx.$slots, "footerContent")
331
- ]),
332
- _: 3
333
- }, 16, ["id", "open", "placement", "initial-focus-element", "show-close-button", "offset", "dialog-class", "open-popover", "onOpened"])) : vue.createCommentVNode("", true)
334
- ]);
310
+ icon: vue.withCtx(() => [vue.createVNode(_component_dt_icon, {
311
+ name: "chevron-up",
312
+ class: "dt-recipe--callbar-button-with-popover--arrow__icon",
313
+ size: "200"
314
+ })]),
315
+ _: 1
316
+ }, 8, ["class", "aria-label", "active", "onClick"])]),
317
+ content: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "content")]),
318
+ headerContent: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "headerContent")]),
319
+ footerContent: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "footerContent")]),
320
+ _: 3
321
+ }, 16, ["id", "open", "placement", "initial-focus-element", "show-close-button", "offset", "dialog-class", "open-popover", "onOpened"])) : vue.createCommentVNode("", true)]);
335
322
  }
336
323
  const callbar_button_with_popover = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
337
324
  exports.DtRecipeCallbarButtonWithPopover = callbar_button_with_popover;
@@ -1 +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=\"offset\"\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 * Displaces the content box from its anchor element\n * by the specified number of pixels.\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, 16],\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":["DtRecipeCallbarButton","DtPopover","DtButton","DtIcon","utils","this","CALLBAR_BUTTON_VALID_WIDTH_SIZE","_openBlock","_createElementBlock","_createVNode","_renderSlot","_createBlock","_mergeProps","_normalizeClass"],"mappings":"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"}
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=\"offset\"\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 * Displaces the content box from its anchor element\n * by the specified number of pixels.\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, 16],\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","name","components","DtRecipeCallbarButton","DtPopover","DtButton","DtIcon","inheritAttrs","props","id","type","String","default","utils","getUniqueString","ariaLabel","validator","label","this","$slots","arrowButtonLabel","required","placement","offset","Array","initialFocusElement","showCloseButton","Boolean","disabled","forceShowArrow","active","danger","onClick","Function","buttonClass","Object","textClass","buttonWidthSize","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","includes","contentClass","openPopover","emits","data","open","computed","showArrowButton","isCompactMode","showPopover","syncOpenState","toggleOpen","methods","arrowClick","ev","$emit","buttonClick","$props","onModalIsOpened","isOpened","_hoisted_1","class","_openBlock","_createElementBlock","_createVNode","_component_dt_recipe_callbar_button","$options","icon","_renderSlot","_ctx","tooltip","_createBlock","_component_dt_popover","_mergeProps","modal","$data","padding","$attrs","onOpened","anchor","_component_dt_button","circle","importance","_normalizeClass","width","_component_dt_icon","content","headerContent","footerContent"],"mappings":"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"}
@@ -7,18 +7,23 @@ import { DtButton } from "./button.js";
7
7
  import { DtIcon } from "./icon.js";
8
8
  import "../common/constants.js";
9
9
  import "./tooltip.js";
10
- import "../chunks/popover_constants-WsOUIY-m.js";
10
+ import "../chunks/popover_constants-6YkPPbnk.js";
11
11
  import "tippy.js";
12
- import "../chunks/modal-XOr4kiNZ.js";
13
- import "../chunks/sr_only_close_button-3EdsV-dH.js";
12
+ import "../chunks/modal-8X6poIZW.js";
13
+ import "../chunks/sr_only_close_button-Ji3Zlts6.js";
14
14
  import "./lazy-show.js";
15
15
  import "../chunks/link_constants-AfTWrr-n.js";
16
16
  import "@dialpad/dialtone-icons/vue3";
17
- import "../chunks/icon_constants-Dy4MEUJL.js";
17
+ import "../chunks/icon_constants-gIQj4mf7.js";
18
18
  import "@dialpad/dialtone-icons/icons.json";
19
19
  const _sfc_main = {
20
20
  name: "DtRecipeCallbarButtonWithPopover",
21
- components: { DtRecipeCallbarButton, DtPopover, DtButton, DtIcon },
21
+ components: {
22
+ DtRecipeCallbarButton,
23
+ DtPopover,
24
+ DtButton,
25
+ DtIcon
26
+ },
22
27
  /* inheritAttrs: false is generally an option we want to set on library
23
28
  components. This allows any attributes passed in that are not recognized
24
29
  as props to be passed down to another element or component using v-bind:$attrs
@@ -248,88 +253,70 @@ const _sfc_main = {
248
253
  }
249
254
  }
250
255
  };
251
- const _hoisted_1 = { class: "dt-recipe--callbar-button-with-popover" };
256
+ const _hoisted_1 = {
257
+ class: "dt-recipe--callbar-button-with-popover"
258
+ };
252
259
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
253
260
  const _component_dt_recipe_callbar_button = resolveComponent("dt-recipe-callbar-button");
254
261
  const _component_dt_icon = resolveComponent("dt-icon");
255
262
  const _component_dt_button = resolveComponent("dt-button");
256
263
  const _component_dt_popover = resolveComponent("dt-popover");
257
- return openBlock(), createElementBlock("div", _hoisted_1, [
258
- createVNode(_component_dt_recipe_callbar_button, {
259
- "aria-label": $props.ariaLabel,
260
- disabled: $props.disabled,
261
- active: $props.active,
262
- danger: $props.danger,
263
- "button-class": $props.buttonClass,
264
- "button-width-size": $props.buttonWidthSize,
265
- "text-class": $props.textClass,
266
- class: "dt-recipe--callbar-button-with-popover--main-button",
267
- onClick: $options.buttonClick
264
+ return openBlock(), createElementBlock("div", _hoisted_1, [createVNode(_component_dt_recipe_callbar_button, {
265
+ "aria-label": $props.ariaLabel,
266
+ disabled: $props.disabled,
267
+ active: $props.active,
268
+ danger: $props.danger,
269
+ "button-class": $props.buttonClass,
270
+ "button-width-size": $props.buttonWidthSize,
271
+ "text-class": $props.textClass,
272
+ class: "dt-recipe--callbar-button-with-popover--main-button",
273
+ onClick: $options.buttonClick
274
+ }, {
275
+ icon: withCtx(() => [renderSlot(_ctx.$slots, "icon")]),
276
+ tooltip: withCtx(() => [renderSlot(_ctx.$slots, "tooltip")]),
277
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
278
+ _: 3
279
+ }, 8, ["aria-label", "disabled", "active", "danger", "button-class", "button-width-size", "text-class", "onClick"]), $options.showArrowButton ? (openBlock(), createBlock(_component_dt_popover, mergeProps({
280
+ key: 0,
281
+ id: $props.id,
282
+ modal: false,
283
+ open: $data.open,
284
+ placement: $props.placement,
285
+ "initial-focus-element": $props.initialFocusElement,
286
+ "show-close-button": $props.showCloseButton,
287
+ offset: $props.offset,
288
+ padding: "none",
289
+ class: "dt-recipe--callbar-button-with-popover--popover-wrapper",
290
+ "dialog-class": ["dt-recipe--callbar-button-with-popover--popover", $props.contentClass],
291
+ "header-class": "d-d-flex d-ai-center d-fw-normal d-px12"
292
+ }, _ctx.$attrs, {
293
+ "open-popover": $options.showPopover,
294
+ onOpened: $options.onModalIsOpened
295
+ }), {
296
+ anchor: withCtx(() => [createVNode(_component_dt_button, {
297
+ circle: "",
298
+ importance: "clear",
299
+ size: "lg",
300
+ class: normalizeClass(["dt-recipe--callbar-button-with-popover--arrow", {
301
+ "dt-recipe--callbar-button-with-popover--arrow--large": !$options.isCompactMode
302
+ }]),
303
+ width: "2rem",
304
+ "aria-label": $props.arrowButtonLabel,
305
+ active: $data.open,
306
+ onClick: $options.arrowClick
268
307
  }, {
269
- icon: withCtx(() => [
270
- renderSlot(_ctx.$slots, "icon")
271
- ]),
272
- tooltip: withCtx(() => [
273
- renderSlot(_ctx.$slots, "tooltip")
274
- ]),
275
- default: withCtx(() => [
276
- renderSlot(_ctx.$slots, "default")
277
- ]),
278
- _: 3
279
- }, 8, ["aria-label", "disabled", "active", "danger", "button-class", "button-width-size", "text-class", "onClick"]),
280
- $options.showArrowButton ? (openBlock(), createBlock(_component_dt_popover, mergeProps({
281
- key: 0,
282
- id: $props.id,
283
- modal: false,
284
- open: $data.open,
285
- placement: $props.placement,
286
- "initial-focus-element": $props.initialFocusElement,
287
- "show-close-button": $props.showCloseButton,
288
- offset: $props.offset,
289
- padding: "none",
290
- class: "dt-recipe--callbar-button-with-popover--popover-wrapper",
291
- "dialog-class": ["dt-recipe--callbar-button-with-popover--popover", $props.contentClass],
292
- "header-class": "d-d-flex d-ai-center d-fw-normal d-px12"
293
- }, _ctx.$attrs, {
294
- "open-popover": $options.showPopover,
295
- onOpened: $options.onModalIsOpened
296
- }), {
297
- anchor: withCtx(() => [
298
- createVNode(_component_dt_button, {
299
- circle: "",
300
- importance: "clear",
301
- size: "lg",
302
- class: normalizeClass([
303
- "dt-recipe--callbar-button-with-popover--arrow",
304
- { "dt-recipe--callbar-button-with-popover--arrow--large": !$options.isCompactMode }
305
- ]),
306
- width: "2rem",
307
- "aria-label": $props.arrowButtonLabel,
308
- active: $data.open,
309
- onClick: $options.arrowClick
310
- }, {
311
- icon: withCtx(() => [
312
- createVNode(_component_dt_icon, {
313
- name: "chevron-up",
314
- class: "dt-recipe--callbar-button-with-popover--arrow__icon",
315
- size: "200"
316
- })
317
- ]),
318
- _: 1
319
- }, 8, ["class", "aria-label", "active", "onClick"])
320
- ]),
321
- content: withCtx(() => [
322
- renderSlot(_ctx.$slots, "content")
323
- ]),
324
- headerContent: withCtx(() => [
325
- renderSlot(_ctx.$slots, "headerContent")
326
- ]),
327
- footerContent: withCtx(() => [
328
- renderSlot(_ctx.$slots, "footerContent")
329
- ]),
330
- _: 3
331
- }, 16, ["id", "open", "placement", "initial-focus-element", "show-close-button", "offset", "dialog-class", "open-popover", "onOpened"])) : createCommentVNode("", true)
332
- ]);
308
+ icon: withCtx(() => [createVNode(_component_dt_icon, {
309
+ name: "chevron-up",
310
+ class: "dt-recipe--callbar-button-with-popover--arrow__icon",
311
+ size: "200"
312
+ })]),
313
+ _: 1
314
+ }, 8, ["class", "aria-label", "active", "onClick"])]),
315
+ content: withCtx(() => [renderSlot(_ctx.$slots, "content")]),
316
+ headerContent: withCtx(() => [renderSlot(_ctx.$slots, "headerContent")]),
317
+ footerContent: withCtx(() => [renderSlot(_ctx.$slots, "footerContent")]),
318
+ _: 3
319
+ }, 16, ["id", "open", "placement", "initial-focus-element", "show-close-button", "offset", "dialog-class", "open-popover", "onOpened"])) : createCommentVNode("", true)]);
333
320
  }
334
321
  const callbar_button_with_popover = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
335
322
  export {
@@ -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=\"offset\"\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 * Displaces the content box from its anchor element\n * by the specified number of pixels.\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, 16],\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":["this","_openBlock","_createElementBlock","_createVNode","_renderSlot","_createBlock","_mergeProps","_normalizeClass"],"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=\"offset\"\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 * Displaces the content box from its anchor element\n * by the specified number of pixels.\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, 16],\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","name","components","DtRecipeCallbarButton","DtPopover","DtButton","DtIcon","inheritAttrs","props","id","type","String","default","utils","getUniqueString","ariaLabel","validator","label","this","$slots","arrowButtonLabel","required","placement","offset","Array","initialFocusElement","showCloseButton","Boolean","disabled","forceShowArrow","active","danger","onClick","Function","buttonClass","Object","textClass","buttonWidthSize","size","CALLBAR_BUTTON_VALID_WIDTH_SIZE","includes","contentClass","openPopover","emits","data","open","computed","showArrowButton","isCompactMode","showPopover","syncOpenState","toggleOpen","methods","arrowClick","ev","$emit","buttonClick","$props","onModalIsOpened","isOpened","_hoisted_1","class","_openBlock","_createElementBlock","_createVNode","_component_dt_recipe_callbar_button","$options","icon","_renderSlot","_ctx","tooltip","_createBlock","_component_dt_popover","_mergeProps","modal","$data","padding","$attrs","onOpened","anchor","_component_dt_button","circle","importance","_normalizeClass","width","_component_dt_icon","content","headerContent","footerContent"],"mappings":"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"}