@dialpad/dialtone-vue 3.146.0 → 3.147.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 (402) hide show
  1. package/dist/chunks/{dropdown-6HXkh24e.js → dropdown-oA-_Gotg.js} +45 -40
  2. package/dist/chunks/{dropdown-6HXkh24e.js.map → dropdown-oA-_Gotg.js.map} +1 -1
  3. package/dist/chunks/{dropdown-QNvAb160.js → dropdown-p-Azgwov.js} +45 -40
  4. package/dist/chunks/{dropdown-QNvAb160.js.map → dropdown-p-Azgwov.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-gIQj4mf7.js → icon_constants-Dy4MEUJL.js} +2 -3
  8. package/dist/chunks/icon_constants-Dy4MEUJL.js.map +1 -0
  9. package/dist/chunks/{icon_constants-bvhFNOPu.js → icon_constants-QYpmdE0R.js} +2 -3
  10. package/dist/chunks/icon_constants-QYpmdE0R.js.map +1 -0
  11. package/dist/chunks/{index-ouh7Bvm-.js → index-4qgKeErp.js} +84 -71
  12. package/dist/chunks/{index-T15rAIdX.js.map → index-4qgKeErp.js.map} +1 -1
  13. package/dist/chunks/{index-dfdrE-3M.js → index-GVD15GIB.js} +12 -3
  14. package/dist/chunks/{index-dfdrE-3M.js.map → index-GVD15GIB.js.map} +1 -1
  15. package/dist/chunks/{index-T15rAIdX.js → index-b_MgDylR.js} +84 -71
  16. package/dist/chunks/{index-ouh7Bvm-.js.map → index-b_MgDylR.js.map} +1 -1
  17. package/dist/chunks/{index-fEp0B-5Z.js → index-lu2o2f4r.js} +12 -3
  18. package/dist/chunks/{index-fEp0B-5Z.js.map → index-lu2o2f4r.js.map} +1 -1
  19. package/dist/chunks/{input-HIysg24t.js → input-NmYDD5bn.js} +9 -3
  20. package/dist/chunks/{input-HIysg24t.js.map → input-NmYDD5bn.js.map} +1 -1
  21. package/dist/chunks/{input-dLLo3Wtg.js → input-ttnte8zB.js} +9 -3
  22. package/dist/chunks/{input-dLLo3Wtg.js.map → input-ttnte8zB.js.map} +1 -1
  23. package/dist/chunks/{input_group-rE6nhye8.js → input_group-M-D25pOJ.js} +2 -4
  24. package/dist/chunks/{input_group-hV1WT2it.js.map → input_group-M-D25pOJ.js.map} +1 -1
  25. package/dist/chunks/{input_group-hV1WT2it.js → input_group-jWnq2DJT.js} +2 -4
  26. package/dist/chunks/{input_group-rE6nhye8.js.map → input_group-jWnq2DJT.js.map} +1 -1
  27. package/dist/chunks/{keyboard_list_navigation-YIqTuw1W.js → keyboard_list_navigation-ScXhrxya.js} +5 -6
  28. package/dist/chunks/{keyboard_list_navigation-x3D6RcC7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  29. package/dist/chunks/{keyboard_list_navigation-x3D6RcC7.js → keyboard_list_navigation-fJnl_Iox.js} +5 -6
  30. package/dist/chunks/{keyboard_list_navigation-YIqTuw1W.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  31. package/dist/chunks/link_constants-AfTWrr-n.js.map +1 -1
  32. package/dist/chunks/link_constants-x8NwdqmA.js.map +1 -1
  33. package/dist/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
  34. package/dist/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
  35. package/dist/chunks/{modal-OaWxzqNt.js → modal-VgxXAQFP.js} +2 -4
  36. package/dist/chunks/{modal-OaWxzqNt.js.map → modal-VgxXAQFP.js.map} +1 -1
  37. package/dist/chunks/{modal-8X6poIZW.js → modal-XOr4kiNZ.js} +2 -4
  38. package/dist/chunks/{modal-8X6poIZW.js.map → modal-XOr4kiNZ.js.map} +1 -1
  39. package/dist/chunks/{notice_action-3ed0uIMN.js → notice_action-WTucGhvr.js} +61 -40
  40. package/dist/chunks/{notice_action-e08Lw5W6.js.map → notice_action-WTucGhvr.js.map} +1 -1
  41. package/dist/chunks/{notice_action-e08Lw5W6.js → notice_action-p-ePanW_.js} +61 -40
  42. package/dist/chunks/{notice_action-3ed0uIMN.js.map → notice_action-p-ePanW_.js.map} +1 -1
  43. package/dist/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
  44. package/dist/chunks/notice_constants-UXo9e3bS.js.map +1 -1
  45. package/dist/chunks/{popover_constants-6YkPPbnk.js → popover_constants-WsOUIY-m.js} +47 -26
  46. package/dist/chunks/{popover_constants-6YkPPbnk.js.map → popover_constants-WsOUIY-m.js.map} +1 -1
  47. package/dist/chunks/{popover_constants-h9MD6WUt.js → popover_constants-XnGWXaxX.js} +47 -26
  48. package/dist/chunks/{popover_constants-h9MD6WUt.js.map → popover_constants-XnGWXaxX.js.map} +1 -1
  49. package/dist/chunks/{sr_only_close_button-Ji3Zlts6.js → sr_only_close_button-3EdsV-dH.js} +4 -4
  50. package/dist/chunks/{sr_only_close_button-Ji3Zlts6.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
  51. package/dist/chunks/{sr_only_close_button-gKr0Vlbz.js → sr_only_close_button-xGrHFjwA.js} +4 -4
  52. package/dist/chunks/{sr_only_close_button-gKr0Vlbz.js.map → sr_only_close_button-xGrHFjwA.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-aD6t0MNo.js → tab-RTDgnD9-.js} +49 -46
  56. package/dist/chunks/{tab-aD6t0MNo.js.map → tab-RTDgnD9-.js.map} +1 -1
  57. package/dist/chunks/{tab-X7IvNGTl.js → tab-qc3f42Yp.js} +49 -46
  58. package/dist/chunks/{tab-X7IvNGTl.js.map → tab-qc3f42Yp.js.map} +1 -1
  59. package/dist/common/constants.cjs.map +1 -1
  60. package/dist/common/constants.js.map +1 -1
  61. package/dist/common/dates.cjs +1 -3
  62. package/dist/common/dates.cjs.map +1 -1
  63. package/dist/common/dates.js +1 -3
  64. package/dist/common/dates.js.map +1 -1
  65. package/dist/common/emoji.cjs +1 -1
  66. package/dist/common/emoji.js +1 -1
  67. package/dist/common/mixins.cjs +3 -3
  68. package/dist/common/mixins.js +3 -3
  69. package/dist/common/utils.cjs +45 -11
  70. package/dist/common/utils.cjs.map +1 -1
  71. package/dist/common/utils.js +45 -11
  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 +108 -87
  79. package/dist/lib/attachment-carousel.cjs.map +1 -1
  80. package/dist/lib/attachment-carousel.js +108 -87
  81. package/dist/lib/attachment-carousel.js.map +1 -1
  82. package/dist/lib/avatar.cjs +88 -56
  83. package/dist/lib/avatar.cjs.map +1 -1
  84. package/dist/lib/avatar.js +88 -56
  85. package/dist/lib/avatar.js.map +1 -1
  86. package/dist/lib/badge.cjs +31 -15
  87. package/dist/lib/badge.cjs.map +1 -1
  88. package/dist/lib/badge.js +31 -15
  89. package/dist/lib/badge.js.map +1 -1
  90. package/dist/lib/banner.cjs +56 -38
  91. package/dist/lib/banner.cjs.map +1 -1
  92. package/dist/lib/banner.js +56 -38
  93. package/dist/lib/banner.js.map +1 -1
  94. package/dist/lib/breadcrumbs.cjs +36 -25
  95. package/dist/lib/breadcrumbs.cjs.map +1 -1
  96. package/dist/lib/breadcrumbs.js +36 -25
  97. package/dist/lib/breadcrumbs.js.map +1 -1
  98. package/dist/lib/button-group.cjs +7 -2
  99. package/dist/lib/button-group.cjs.map +1 -1
  100. package/dist/lib/button-group.js +7 -2
  101. package/dist/lib/button-group.js.map +1 -1
  102. package/dist/lib/button.cjs +69 -44
  103. package/dist/lib/button.cjs.map +1 -1
  104. package/dist/lib/button.js +69 -44
  105. package/dist/lib/button.js.map +1 -1
  106. package/dist/lib/callbar-button-with-popover.cjs +81 -68
  107. package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
  108. package/dist/lib/callbar-button-with-popover.js +81 -68
  109. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  110. package/dist/lib/callbar-button.cjs +45 -32
  111. package/dist/lib/callbar-button.cjs.map +1 -1
  112. package/dist/lib/callbar-button.js +45 -32
  113. package/dist/lib/callbar-button.js.map +1 -1
  114. package/dist/lib/callbox.cjs +57 -38
  115. package/dist/lib/callbox.cjs.map +1 -1
  116. package/dist/lib/callbox.js +57 -38
  117. package/dist/lib/callbox.js.map +1 -1
  118. package/dist/lib/card.cjs +33 -13
  119. package/dist/lib/card.cjs.map +1 -1
  120. package/dist/lib/card.js +33 -13
  121. package/dist/lib/card.js.map +1 -1
  122. package/dist/lib/checkbox-group.cjs +5 -2
  123. package/dist/lib/checkbox-group.cjs.map +1 -1
  124. package/dist/lib/checkbox-group.js +5 -2
  125. package/dist/lib/checkbox-group.js.map +1 -1
  126. package/dist/lib/checkbox.cjs +45 -41
  127. package/dist/lib/checkbox.cjs.map +1 -1
  128. package/dist/lib/checkbox.js +45 -41
  129. package/dist/lib/checkbox.js.map +1 -1
  130. package/dist/lib/chip.cjs +53 -38
  131. package/dist/lib/chip.cjs.map +1 -1
  132. package/dist/lib/chip.js +53 -38
  133. package/dist/lib/chip.js.map +1 -1
  134. package/dist/lib/codeblock.cjs +6 -4
  135. package/dist/lib/codeblock.cjs.map +1 -1
  136. package/dist/lib/codeblock.js +6 -4
  137. package/dist/lib/codeblock.js.map +1 -1
  138. package/dist/lib/collapsible.cjs +76 -62
  139. package/dist/lib/collapsible.cjs.map +1 -1
  140. package/dist/lib/collapsible.js +76 -62
  141. package/dist/lib/collapsible.js.map +1 -1
  142. package/dist/lib/combobox-multi-select.cjs +88 -75
  143. package/dist/lib/combobox-multi-select.cjs.map +1 -1
  144. package/dist/lib/combobox-multi-select.js +88 -75
  145. package/dist/lib/combobox-multi-select.js.map +1 -1
  146. package/dist/lib/combobox-with-popover.cjs +85 -77
  147. package/dist/lib/combobox-with-popover.cjs.map +1 -1
  148. package/dist/lib/combobox-with-popover.js +85 -77
  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 +89 -65
  153. package/dist/lib/contact-centers-row.cjs.map +1 -1
  154. package/dist/lib/contact-centers-row.js +89 -65
  155. package/dist/lib/contact-centers-row.js.map +1 -1
  156. package/dist/lib/contact-info.cjs +82 -59
  157. package/dist/lib/contact-info.cjs.map +1 -1
  158. package/dist/lib/contact-info.js +82 -59
  159. package/dist/lib/contact-info.js.map +1 -1
  160. package/dist/lib/contact-row.cjs +47 -37
  161. package/dist/lib/contact-row.cjs.map +1 -1
  162. package/dist/lib/contact-row.js +47 -37
  163. package/dist/lib/contact-row.js.map +1 -1
  164. package/dist/lib/datepicker.cjs +263 -267
  165. package/dist/lib/datepicker.cjs.map +1 -1
  166. package/dist/lib/datepicker.js +263 -267
  167. package/dist/lib/datepicker.js.map +1 -1
  168. package/dist/lib/description-list.cjs +14 -9
  169. package/dist/lib/description-list.cjs.map +1 -1
  170. package/dist/lib/description-list.js +14 -9
  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 +249 -312
  177. package/dist/lib/editor.cjs.map +1 -1
  178. package/dist/lib/editor.js +249 -312
  179. package/dist/lib/editor.js.map +1 -1
  180. package/dist/lib/emoji-picker.cjs +419 -387
  181. package/dist/lib/emoji-picker.cjs.map +1 -1
  182. package/dist/lib/emoji-picker.js +419 -387
  183. package/dist/lib/emoji-picker.js.map +1 -1
  184. package/dist/lib/emoji-row.cjs +69 -59
  185. package/dist/lib/emoji-row.cjs.map +1 -1
  186. package/dist/lib/emoji-row.js +69 -59
  187. package/dist/lib/emoji-row.js.map +1 -1
  188. package/dist/lib/emoji-text-wrapper.cjs +12 -13
  189. package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
  190. package/dist/lib/emoji-text-wrapper.js +12 -13
  191. package/dist/lib/emoji-text-wrapper.js.map +1 -1
  192. package/dist/lib/emoji.cjs +23 -19
  193. package/dist/lib/emoji.cjs.map +1 -1
  194. package/dist/lib/emoji.js +23 -19
  195. package/dist/lib/emoji.js.map +1 -1
  196. package/dist/lib/empty-state.cjs +30 -20
  197. package/dist/lib/empty-state.cjs.map +1 -1
  198. package/dist/lib/empty-state.js +30 -20
  199. package/dist/lib/empty-state.js.map +1 -1
  200. package/dist/lib/feed-item-row.cjs +74 -43
  201. package/dist/lib/feed-item-row.cjs.map +1 -1
  202. package/dist/lib/feed-item-row.js +74 -43
  203. package/dist/lib/feed-item-row.js.map +1 -1
  204. package/dist/lib/feed-pill.cjs +55 -45
  205. package/dist/lib/feed-pill.cjs.map +1 -1
  206. package/dist/lib/feed-pill.js +55 -45
  207. package/dist/lib/feed-pill.js.map +1 -1
  208. package/dist/lib/general-row.cjs +165 -115
  209. package/dist/lib/general-row.cjs.map +1 -1
  210. package/dist/lib/general-row.js +165 -115
  211. package/dist/lib/general-row.js.map +1 -1
  212. package/dist/lib/group-row.cjs +9 -7
  213. package/dist/lib/group-row.cjs.map +1 -1
  214. package/dist/lib/group-row.js +9 -7
  215. package/dist/lib/group-row.js.map +1 -1
  216. package/dist/lib/grouped-chip.cjs +48 -27
  217. package/dist/lib/grouped-chip.cjs.map +1 -1
  218. package/dist/lib/grouped-chip.js +48 -27
  219. package/dist/lib/grouped-chip.js.map +1 -1
  220. package/dist/lib/hovercard.cjs +33 -25
  221. package/dist/lib/hovercard.cjs.map +1 -1
  222. package/dist/lib/hovercard.js +33 -25
  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 +1 -2
  229. package/dist/lib/illustration.cjs.map +1 -1
  230. package/dist/lib/illustration.js +1 -2
  231. package/dist/lib/illustration.js.map +1 -1
  232. package/dist/lib/image-viewer.cjs +66 -52
  233. package/dist/lib/image-viewer.cjs.map +1 -1
  234. package/dist/lib/image-viewer.js +66 -52
  235. package/dist/lib/image-viewer.js.map +1 -1
  236. package/dist/lib/input-group.cjs +19 -15
  237. package/dist/lib/input-group.cjs.map +1 -1
  238. package/dist/lib/input-group.js +19 -15
  239. package/dist/lib/input-group.js.map +1 -1
  240. package/dist/lib/input.cjs +114 -77
  241. package/dist/lib/input.cjs.map +1 -1
  242. package/dist/lib/input.js +114 -77
  243. package/dist/lib/input.js.map +1 -1
  244. package/dist/lib/item-layout.cjs +27 -10
  245. package/dist/lib/item-layout.cjs.map +1 -1
  246. package/dist/lib/item-layout.js +27 -10
  247. package/dist/lib/item-layout.js.map +1 -1
  248. package/dist/lib/ivr-node.cjs +89 -80
  249. package/dist/lib/ivr-node.cjs.map +1 -1
  250. package/dist/lib/ivr-node.js +89 -80
  251. package/dist/lib/ivr-node.js.map +1 -1
  252. package/dist/lib/keyboard-shortcut.cjs +31 -26
  253. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  254. package/dist/lib/keyboard-shortcut.js +31 -26
  255. package/dist/lib/keyboard-shortcut.js.map +1 -1
  256. package/dist/lib/lazy-show.cjs +8 -6
  257. package/dist/lib/lazy-show.cjs.map +1 -1
  258. package/dist/lib/lazy-show.js +8 -6
  259. package/dist/lib/lazy-show.js.map +1 -1
  260. package/dist/lib/link.cjs +7 -2
  261. package/dist/lib/link.cjs.map +1 -1
  262. package/dist/lib/link.js +7 -2
  263. package/dist/lib/link.js.map +1 -1
  264. package/dist/lib/list-item-group.cjs +14 -7
  265. package/dist/lib/list-item-group.cjs.map +1 -1
  266. package/dist/lib/list-item-group.js +14 -7
  267. package/dist/lib/list-item-group.js.map +1 -1
  268. package/dist/lib/list-item.cjs +25 -24
  269. package/dist/lib/list-item.cjs.map +1 -1
  270. package/dist/lib/list-item.js +25 -24
  271. package/dist/lib/list-item.js.map +1 -1
  272. package/dist/lib/message-input.cjs +264 -227
  273. package/dist/lib/message-input.cjs.map +1 -1
  274. package/dist/lib/message-input.js +264 -227
  275. package/dist/lib/message-input.js.map +1 -1
  276. package/dist/lib/modal.cjs +99 -59
  277. package/dist/lib/modal.cjs.map +1 -1
  278. package/dist/lib/modal.js +99 -59
  279. package/dist/lib/modal.js.map +1 -1
  280. package/dist/lib/notice.cjs +46 -33
  281. package/dist/lib/notice.cjs.map +1 -1
  282. package/dist/lib/notice.js +46 -33
  283. package/dist/lib/notice.js.map +1 -1
  284. package/dist/lib/pagination.cjs +61 -49
  285. package/dist/lib/pagination.cjs.map +1 -1
  286. package/dist/lib/pagination.js +61 -49
  287. package/dist/lib/pagination.js.map +1 -1
  288. package/dist/lib/popover.cjs +156 -133
  289. package/dist/lib/popover.cjs.map +1 -1
  290. package/dist/lib/popover.js +157 -134
  291. package/dist/lib/popover.js.map +1 -1
  292. package/dist/lib/presence.cjs +17 -9
  293. package/dist/lib/presence.cjs.map +1 -1
  294. package/dist/lib/presence.js +17 -9
  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 +41 -34
  301. package/dist/lib/radio.cjs.map +1 -1
  302. package/dist/lib/radio.js +41 -34
  303. package/dist/lib/radio.js.map +1 -1
  304. package/dist/lib/rich-text-editor.cjs +288 -292
  305. package/dist/lib/rich-text-editor.cjs.map +1 -1
  306. package/dist/lib/rich-text-editor.js +288 -292
  307. package/dist/lib/rich-text-editor.js.map +1 -1
  308. package/dist/lib/root-layout.cjs +39 -24
  309. package/dist/lib/root-layout.cjs.map +1 -1
  310. package/dist/lib/root-layout.js +39 -24
  311. package/dist/lib/root-layout.js.map +1 -1
  312. package/dist/lib/scrollbar-directive.cjs +422 -388
  313. package/dist/lib/scrollbar-directive.cjs.map +1 -1
  314. package/dist/lib/scrollbar-directive.js +422 -388
  315. package/dist/lib/scrollbar-directive.js.map +1 -1
  316. package/dist/lib/scroller.cjs +83 -100
  317. package/dist/lib/scroller.cjs.map +1 -1
  318. package/dist/lib/scroller.js +83 -100
  319. package/dist/lib/scroller.js.map +1 -1
  320. package/dist/lib/select-menu.cjs +67 -40
  321. package/dist/lib/select-menu.cjs.map +1 -1
  322. package/dist/lib/select-menu.js +67 -40
  323. package/dist/lib/select-menu.js.map +1 -1
  324. package/dist/lib/settings-menu-button.cjs +16 -10
  325. package/dist/lib/settings-menu-button.cjs.map +1 -1
  326. package/dist/lib/settings-menu-button.js +16 -10
  327. package/dist/lib/settings-menu-button.js.map +1 -1
  328. package/dist/lib/skeleton.cjs +93 -74
  329. package/dist/lib/skeleton.cjs.map +1 -1
  330. package/dist/lib/skeleton.js +93 -74
  331. package/dist/lib/skeleton.js.map +1 -1
  332. package/dist/lib/split-button.cjs +74 -68
  333. package/dist/lib/split-button.cjs.map +1 -1
  334. package/dist/lib/split-button.js +74 -68
  335. package/dist/lib/split-button.js.map +1 -1
  336. package/dist/lib/stack.cjs +26 -18
  337. package/dist/lib/stack.cjs.map +1 -1
  338. package/dist/lib/stack.js +26 -18
  339. package/dist/lib/stack.js.map +1 -1
  340. package/dist/lib/tabs.cjs +7 -3
  341. package/dist/lib/tabs.cjs.map +1 -1
  342. package/dist/lib/tabs.js +7 -3
  343. package/dist/lib/tabs.js.map +1 -1
  344. package/dist/lib/time-pill.cjs.map +1 -1
  345. package/dist/lib/time-pill.js.map +1 -1
  346. package/dist/lib/toast.cjs +51 -35
  347. package/dist/lib/toast.cjs.map +1 -1
  348. package/dist/lib/toast.js +51 -35
  349. package/dist/lib/toast.js.map +1 -1
  350. package/dist/lib/toggle.cjs +34 -24
  351. package/dist/lib/toggle.cjs.map +1 -1
  352. package/dist/lib/toggle.js +34 -24
  353. package/dist/lib/toggle.js.map +1 -1
  354. package/dist/lib/tooltip-directive.cjs +19 -26
  355. package/dist/lib/tooltip-directive.cjs.map +1 -1
  356. package/dist/lib/tooltip-directive.js +19 -26
  357. package/dist/lib/tooltip-directive.js.map +1 -1
  358. package/dist/lib/tooltip.cjs +32 -21
  359. package/dist/lib/tooltip.cjs.map +1 -1
  360. package/dist/lib/tooltip.js +33 -22
  361. package/dist/lib/tooltip.js.map +1 -1
  362. package/dist/lib/top-banner-info.cjs +23 -8
  363. package/dist/lib/top-banner-info.cjs.map +1 -1
  364. package/dist/lib/top-banner-info.js +23 -8
  365. package/dist/lib/top-banner-info.js.map +1 -1
  366. package/dist/lib/unread-pill.cjs +11 -8
  367. package/dist/lib/unread-pill.cjs.map +1 -1
  368. package/dist/lib/unread-pill.js +11 -8
  369. package/dist/lib/unread-pill.js.map +1 -1
  370. package/dist/lib/validation-messages.cjs +17 -14
  371. package/dist/lib/validation-messages.cjs.map +1 -1
  372. package/dist/lib/validation-messages.js +17 -14
  373. package/dist/lib/validation-messages.js.map +1 -1
  374. package/dist/style.css +9 -9
  375. package/dist/types/components/button/button.vue.d.ts +1 -1
  376. package/dist/types/components/chip/chip.vue.d.ts +1 -1
  377. package/dist/types/components/combobox/combobox.vue.d.ts +1 -1
  378. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
  379. package/dist/types/components/icon/icon.vue.d.ts +2 -2
  380. package/dist/types/components/icon/icon_constants.d.ts +1 -1
  381. package/dist/types/components/icon/icon_constants.d.ts.map +1 -1
  382. package/dist/types/components/illustration/illustration_constants.d.ts +1 -1
  383. package/dist/types/components/illustration/illustration_constants.d.ts.map +1 -1
  384. package/dist/types/components/input/input.vue.d.ts +3 -2
  385. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  386. package/dist/types/components/modal/modal.vue.d.ts +1 -1
  387. package/dist/types/components/notice/notice.vue.d.ts +1 -1
  388. package/dist/types/components/radio/radio.vue.d.ts +1 -1
  389. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
  390. package/dist/types/components/scroller/modules/scroller_item.vue.d.ts +1 -1
  391. package/dist/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
  392. package/dist/types/components/tabs/tab.vue.d.ts +1 -1
  393. package/dist/types/components/toast/toast.vue.d.ts +2 -2
  394. package/dist/types/components/tooltip/tooltip.vue.d.ts +1 -1
  395. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
  396. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
  397. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  398. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +15 -0
  399. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  400. package/package.json +2 -4
  401. package/dist/chunks/icon_constants-bvhFNOPu.js.map +0 -1
  402. package/dist/chunks/icon_constants-gIQj4mf7.js.map +0 -1
@@ -11,11 +11,13 @@ const _sfc_main = {
11
11
  }
12
12
  }
13
13
  };
14
- const _hoisted_1 = {
15
- class: "d-codeblock"
16
- };
14
+ const _hoisted_1 = { class: "d-codeblock" };
17
15
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
18
- return vue.openBlock(), vue.createElementBlock("pre", null, [vue.createTextVNode(" "), vue.createElementVNode("code", _hoisted_1, vue.toDisplayString($props.text), 1), vue.createTextVNode("\n ")]);
16
+ return vue.openBlock(), vue.createElementBlock("pre", null, [
17
+ vue.createTextVNode(" "),
18
+ vue.createElementVNode("code", _hoisted_1, vue.toDisplayString($props.text), 1),
19
+ vue.createTextVNode("\n ")
20
+ ]);
19
21
  }
20
22
  const codeblock = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
21
23
  exports.DtCodeblock = codeblock;
@@ -1 +1 @@
1
- {"version":3,"file":"codeblock.cjs","sources":["../../components/codeblock/codeblock.vue"],"sourcesContent":["<template>\n <pre>\n <code\n class=\"d-codeblock\"\n >{{ text }}</code>\n </pre>\n</template>\n\n<script>\nexport default {\n name: 'DtCodeblock',\n\n props: {\n text: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","props","text","type","String","required","_hoisted_1","class","_createElementBlock","_createElementVNode","_toDisplayString","$props"],"mappings":";;;;AASA,MAAKA,YAAU;AAAA,EACbC,MAAM;AAAA,EAENC,OAAO;AAAA,IACLC,MAAM;AAAA,MACJC,MAAMC;AAAAA,MACNC,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAfM,MAAAC,aAAA;AAAA,EAAAC,OAAM;AAAa;;0BAFvBC,IAAAA,mBAIM,OAAA,MAAA,qBAJD,MACH,GAAAC,uBAEkB,QAFlBH,YAEkBI,IAAA,gBAAdC,OAAIT,IAAA,GAAA,CAAA,uBAAU,MACpB,CAAA;;;;"}
1
+ {"version":3,"file":"codeblock.cjs","sources":["../../components/codeblock/codeblock.vue"],"sourcesContent":["<template>\n <pre>\n <code\n class=\"d-codeblock\"\n >{{ text }}</code>\n </pre>\n</template>\n\n<script>\nexport default {\n name: 'DtCodeblock',\n\n props: {\n text: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_toDisplayString"],"mappings":";;;;AASA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AACH;AAfM,MAAA,aAAA,EAAA,OAAM,cAAa;;0BAFvBA,uBAIM,OAAA,MAAA;AAAA,wBAJD,MACH;AAAA,IAAAC,IAEkB,mBAAA,QAFlB,YAEkBC,IAAAA,gBAAd,OAAI,IAAA,GAAA,CAAA;AAAA,wBAAU,MACpB;AAAA;;;;"}
@@ -9,11 +9,13 @@ const _sfc_main = {
9
9
  }
10
10
  }
11
11
  };
12
- const _hoisted_1 = {
13
- class: "d-codeblock"
14
- };
12
+ const _hoisted_1 = { class: "d-codeblock" };
15
13
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
16
- return openBlock(), createElementBlock("pre", null, [createTextVNode(" "), createElementVNode("code", _hoisted_1, toDisplayString($props.text), 1), createTextVNode("\n ")]);
14
+ return openBlock(), createElementBlock("pre", null, [
15
+ createTextVNode(" "),
16
+ createElementVNode("code", _hoisted_1, toDisplayString($props.text), 1),
17
+ createTextVNode("\n ")
18
+ ]);
17
19
  }
18
20
  const codeblock = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
19
21
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"codeblock.js","sources":["../../components/codeblock/codeblock.vue"],"sourcesContent":["<template>\n <pre>\n <code\n class=\"d-codeblock\"\n >{{ text }}</code>\n </pre>\n</template>\n\n<script>\nexport default {\n name: 'DtCodeblock',\n\n props: {\n text: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","props","text","type","String","required","_hoisted_1","class","_createElementBlock","_createElementVNode","_toDisplayString","$props"],"mappings":";;AASA,MAAKA,YAAU;AAAA,EACbC,MAAM;AAAA,EAENC,OAAO;AAAA,IACLC,MAAM;AAAA,MACJC,MAAMC;AAAAA,MACNC,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAfM,MAAAC,aAAA;AAAA,EAAAC,OAAM;AAAa;;sBAFvBC,mBAIM,OAAA,MAAA,iBAJD,MACH,GAAAC,mBAEkB,QAFlBH,YAEkBI,gBAAdC,OAAIT,IAAA,GAAA,CAAA,mBAAU,MACpB,CAAA;;;"}
1
+ {"version":3,"file":"codeblock.js","sources":["../../components/codeblock/codeblock.vue"],"sourcesContent":["<template>\n <pre>\n <code\n class=\"d-codeblock\"\n >{{ text }}</code>\n </pre>\n</template>\n\n<script>\nexport default {\n name: 'DtCodeblock',\n\n props: {\n text: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_toDisplayString"],"mappings":";;AASA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AACH;AAfM,MAAA,aAAA,EAAA,OAAM,cAAa;;sBAFvBA,mBAIM,OAAA,MAAA;AAAA,oBAJD,MACH;AAAA,IAAAC,mBAEkB,QAFlB,YAEkBC,gBAAd,OAAI,IAAA,GAAA,CAAA;AAAA,oBAAU,MACpB;AAAA;;;"}
@@ -9,7 +9,7 @@ const lib_icon = require("./icon.cjs");
9
9
  require("../common/constants.cjs");
10
10
  require("../chunks/link_constants-x8NwdqmA.js");
11
11
  require("@dialpad/dialtone-icons/vue3");
12
- require("../chunks/icon_constants-bvhFNOPu.js");
12
+ require("../chunks/icon_constants-QYpmdE0R.js");
13
13
  require("@dialpad/dialtone-icons/icons.json");
14
14
  const _sfc_main$1 = {
15
15
  name: "DtCollapsibleLazyShow",
@@ -141,12 +141,16 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
141
141
  onLeave: $options.leave,
142
142
  onAfterLeave: $options.afterLeave
143
143
  }), {
144
- default: vue.withCtx(() => [vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.elementType), vue.normalizeProps(vue.guardReactiveProps(_ctx.$attrs)), {
145
- default: vue.withCtx(() => [$data.initialized ? vue.renderSlot(_ctx.$slots, "default", {
146
- key: 0
147
- }) : vue.createCommentVNode("", true)]),
148
- _: 3
149
- }, 16)), [[vue.vShow, $props.show]])]),
144
+ default: vue.withCtx(() => [
145
+ vue.withDirectives((vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.elementType), vue.normalizeProps(vue.guardReactiveProps(_ctx.$attrs)), {
146
+ default: vue.withCtx(() => [
147
+ $data.initialized ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : vue.createCommentVNode("", true)
148
+ ]),
149
+ _: 3
150
+ }, 16)), [
151
+ [vue.vShow, $props.show]
152
+ ])
153
+ ]),
150
154
  _: 3
151
155
  }, 16, ["appear", "css", "onBeforeEnter", "onEnter", "onAfterEnter", "onBeforeLeave", "onLeave", "onAfterLeave"]);
152
156
  }
@@ -322,61 +326,71 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
322
326
  const _component_dt_icon = vue.resolveComponent("dt-icon");
323
327
  const _component_dt_button = vue.resolveComponent("dt-button");
324
328
  const _component_dt_collapsible_lazy_show = vue.resolveComponent("dt-collapsible-lazy-show");
325
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.elementType), vue.mergeProps({
326
- ref: "collapsible"
327
- }, vue.toHandlers($options.collapsibleListeners)), {
328
- default: vue.withCtx(() => [vue.createElementVNode("div", {
329
- id: !$props.ariaLabelledBy && $options.labelledBy,
330
- ref: "anchor",
331
- class: vue.normalizeClass($props.anchorClass)
332
- }, [vue.renderSlot(_ctx.$slots, "anchor", {
333
- attrs: {
334
- "aria-controls": $props.id,
335
- "aria-expanded": $data.isOpen.toString(),
336
- "role": "button"
337
- }
338
- }, () => [vue.createVNode(_component_dt_button, {
339
- importance: "clear",
340
- kind: "muted",
341
- "aria-controls": $props.id,
342
- "aria-expanded": `${$data.isOpen}`,
343
- style: vue.normalizeStyle({
344
- "width": $props.maxWidth
345
- }),
346
- onClick: $options.defaultToggleOpen
347
- }, {
348
- default: vue.withCtx(() => [vue.createVNode(_component_dt_icon, {
349
- name: $data.isOpen ? "chevron-down" : "chevron-right",
350
- class: "d-collapsible__icon",
351
- size: "300"
352
- }, null, 8, ["name"]), vue.createElementVNode("span", {
353
- class: "d-collapsible__anchor-text",
354
- title: $props.anchorText
355
- }, vue.toDisplayString($props.anchorText), 9, _hoisted_2)]),
356
- _: 1
357
- }, 8, ["aria-controls", "aria-expanded", "style", "onClick"])])], 10, _hoisted_1), vue.createVNode(_component_dt_collapsible_lazy_show, vue.mergeProps({
358
- id: $props.id,
359
- ref: "contentWrapper",
360
- "aria-hidden": `${!$data.isOpen}`,
361
- "aria-labelledby": $options.labelledBy,
362
- "aria-label": $props.ariaLabel,
363
- show: $data.isOpen,
364
- "element-type": $props.contentElementType,
365
- class: $props.contentClass,
366
- style: {
367
- "max-height": $props.maxHeight,
368
- "max-width": $props.maxWidth
369
- },
370
- "data-qa": "dt-collapsible--content",
371
- tabindex: "-1",
372
- appear: ""
373
- }, vue.toHandlers($options.collapsibleListeners), {
374
- onAfterLeave: $options.onLeaveTransitionComplete,
375
- onAfterEnter: $options.onEnterTransitionComplete
376
- }), {
377
- default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "content")]),
378
- _: 3
379
- }, 16, ["id", "aria-hidden", "aria-labelledby", "aria-label", "show", "element-type", "class", "style", "onAfterLeave", "onAfterEnter"])]),
329
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($props.elementType), vue.mergeProps({ ref: "collapsible" }, vue.toHandlers($options.collapsibleListeners)), {
330
+ default: vue.withCtx(() => [
331
+ vue.createElementVNode("div", {
332
+ id: !$props.ariaLabelledBy && $options.labelledBy,
333
+ ref: "anchor",
334
+ class: vue.normalizeClass($props.anchorClass)
335
+ }, [
336
+ vue.renderSlot(_ctx.$slots, "anchor", {
337
+ attrs: {
338
+ "aria-controls": $props.id,
339
+ "aria-expanded": $data.isOpen.toString(),
340
+ "role": "button"
341
+ }
342
+ }, () => [
343
+ vue.createVNode(_component_dt_button, {
344
+ importance: "clear",
345
+ kind: "muted",
346
+ "aria-controls": $props.id,
347
+ "aria-expanded": `${$data.isOpen}`,
348
+ style: vue.normalizeStyle({
349
+ "width": $props.maxWidth
350
+ }),
351
+ onClick: $options.defaultToggleOpen
352
+ }, {
353
+ default: vue.withCtx(() => [
354
+ vue.createVNode(_component_dt_icon, {
355
+ name: $data.isOpen ? "chevron-down" : "chevron-right",
356
+ class: "d-collapsible__icon",
357
+ size: "300"
358
+ }, null, 8, ["name"]),
359
+ vue.createElementVNode("span", {
360
+ class: "d-collapsible__anchor-text",
361
+ title: $props.anchorText
362
+ }, vue.toDisplayString($props.anchorText), 9, _hoisted_2)
363
+ ]),
364
+ _: 1
365
+ }, 8, ["aria-controls", "aria-expanded", "style", "onClick"])
366
+ ])
367
+ ], 10, _hoisted_1),
368
+ vue.createVNode(_component_dt_collapsible_lazy_show, vue.mergeProps({
369
+ id: $props.id,
370
+ ref: "contentWrapper",
371
+ "aria-hidden": `${!$data.isOpen}`,
372
+ "aria-labelledby": $options.labelledBy,
373
+ "aria-label": $props.ariaLabel,
374
+ show: $data.isOpen,
375
+ "element-type": $props.contentElementType,
376
+ class: $props.contentClass,
377
+ style: {
378
+ "max-height": $props.maxHeight,
379
+ "max-width": $props.maxWidth
380
+ },
381
+ "data-qa": "dt-collapsible--content",
382
+ tabindex: "-1",
383
+ appear: ""
384
+ }, vue.toHandlers($options.collapsibleListeners), {
385
+ onAfterLeave: $options.onLeaveTransitionComplete,
386
+ onAfterEnter: $options.onEnterTransitionComplete
387
+ }), {
388
+ default: vue.withCtx(() => [
389
+ vue.renderSlot(_ctx.$slots, "content")
390
+ ]),
391
+ _: 3
392
+ }, 16, ["id", "aria-hidden", "aria-labelledby", "aria-label", "show", "element-type", "class", "style", "onAfterLeave", "onAfterEnter"])
393
+ ]),
380
394
  _: 3
381
395
  }, 16);
382
396
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.cjs","sources":["../../components/collapsible/collapsible_lazy_show.vue","../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <!-- applies the transition on initial render -->\n <transition\n :appear=\"appear\"\n enter-active-class=\"enter-active\"\n leave-active-class=\"leave-active\"\n v-bind=\"$attrs\"\n :css=\"isCSSEnabled\"\n @before-enter=\"beforeEnter\"\n @enter=\"enter\"\n @after-enter=\"afterEnter\"\n @before-leave=\"beforeLeave\"\n @leave=\"leave\"\n @after-leave=\"afterLeave\"\n >\n <component\n :is=\"elementType\"\n v-show=\"show\"\n v-bind=\"$attrs\"\n >\n <!-- @slot slot for Content within collapsible -->\n <slot v-if=\"initialized\" />\n </component>\n </transition>\n</template>\n\n<script>\nexport default {\n name: 'DtCollapsibleLazyShow',\n\n inheritAttrs: false,\n\n /******************\n * PROPS *\n ******************/\n props: {\n /**\n * Whether the child slot is shown.\n */\n show: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Enable/Disable transition animation\n */\n appear: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n },\n\n /******************\n * DATA *\n ******************/\n data () {\n return {\n initialized: !!this.show,\n };\n },\n\n /******************\n * COMPUTED *\n ******************/\n computed: {\n /**\n * Set the css property to false when running tests only.\n * Refer to: https://vuejs.org/guide/built-ins/transition.html#javascript-hooks for details about\n * transition `css` property\n * @returns {boolean}\n */\n isCSSEnabled () {\n return process.env.NODE_ENV !== 'test';\n },\n },\n\n /******************\n * WATCH *\n ******************/\n watch: {\n show: function (newValue) {\n if (!newValue || this.initialized) return;\n\n this.initialized = true;\n },\n },\n\n methods: {\n /**\n * @param {HTMLElement} element\n */\n beforeEnter (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = '0px';\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n enter (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = `${element.scrollHeight}px`;\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterEnter (element) {\n element.style.height = null;\n },\n\n /**\n * @param {HTMLElement} element\n */\n beforeLeave (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = `${element.offsetHeight}px`;\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n leave (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = '0px';\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterLeave (element) {\n element.style.height = null;\n },\n },\n};\n</script>\n\n<style>\n .enter-active,\n .leave-active {\n overflow: hidden;\n transition: height var(--td300) var(--ttf-out-quint);\n }\n</style>\n","<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon\n :name=\" isOpen ? 'chevron-down' : 'chevron-right'\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIcon } from '@/components/icon';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIcon,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","inheritAttrs","props","show","type","Boolean","default","appear","elementType","String","data","initialized","computed","isCSSEnabled","process","env","NODE_ENV","watch","newValue","methods","beforeEnter","element","requestAnimationFrame","style","height","enter","scrollHeight","afterEnter","beforeLeave","offsetHeight","leave","afterLeave","_openBlock","_createBlock","_Transition","_mergeProps","$props","_ctx","$attrs","css","$options","onBeforeEnter","onEnter","onAfterEnter","onBeforeLeave","onLeave","onAfterLeave","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","$data","_renderSlot","$slots","key","components","DtButton","DtCollapsibleLazyShow","DtLazyShow","DtIcon","anchorText","open","id","getUniqueString","contentElementType","anchorClass","Array","Object","contentClass","maxWidth","maxHeight","ariaLabel","ariaLabelledBy","emits","isOpen","labelledBy","collapsibleListeners","extractVueListeners","handler","immediate","created","validateProperAnchor","onLeaveTransitionComplete","$emit","onEnterTransitionComplete","$refs","content","defaultToggleOpen","toggleOpen","hasSlotContent","anchor","console","error","ref","_toHandlers","_createElementVNode","class","attrs","toString","_createVNode","_component_dt_button","importance","kind","_normalizeStyle","onClick","_component_dt_icon","size","title","_hoisted_2","_component_dt_collapsible_lazy_show","tabindex"],"mappings":"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"}
1
+ {"version":3,"file":"collapsible.cjs","sources":["../../components/collapsible/collapsible_lazy_show.vue","../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <!-- applies the transition on initial render -->\n <transition\n :appear=\"appear\"\n enter-active-class=\"enter-active\"\n leave-active-class=\"leave-active\"\n v-bind=\"$attrs\"\n :css=\"isCSSEnabled\"\n @before-enter=\"beforeEnter\"\n @enter=\"enter\"\n @after-enter=\"afterEnter\"\n @before-leave=\"beforeLeave\"\n @leave=\"leave\"\n @after-leave=\"afterLeave\"\n >\n <component\n :is=\"elementType\"\n v-show=\"show\"\n v-bind=\"$attrs\"\n >\n <!-- @slot slot for Content within collapsible -->\n <slot v-if=\"initialized\" />\n </component>\n </transition>\n</template>\n\n<script>\nexport default {\n name: 'DtCollapsibleLazyShow',\n\n inheritAttrs: false,\n\n /******************\n * PROPS *\n ******************/\n props: {\n /**\n * Whether the child slot is shown.\n */\n show: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Enable/Disable transition animation\n */\n appear: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n },\n\n /******************\n * DATA *\n ******************/\n data () {\n return {\n initialized: !!this.show,\n };\n },\n\n /******************\n * COMPUTED *\n ******************/\n computed: {\n /**\n * Set the css property to false when running tests only.\n * Refer to: https://vuejs.org/guide/built-ins/transition.html#javascript-hooks for details about\n * transition `css` property\n * @returns {boolean}\n */\n isCSSEnabled () {\n return process.env.NODE_ENV !== 'test';\n },\n },\n\n /******************\n * WATCH *\n ******************/\n watch: {\n show: function (newValue) {\n if (!newValue || this.initialized) return;\n\n this.initialized = true;\n },\n },\n\n methods: {\n /**\n * @param {HTMLElement} element\n */\n beforeEnter (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = '0px';\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n enter (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = `${element.scrollHeight}px`;\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterEnter (element) {\n element.style.height = null;\n },\n\n /**\n * @param {HTMLElement} element\n */\n beforeLeave (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = `${element.offsetHeight}px`;\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n leave (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = '0px';\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterLeave (element) {\n element.style.height = null;\n },\n },\n};\n</script>\n\n<style>\n .enter-active,\n .leave-active {\n overflow: hidden;\n transition: height var(--td300) var(--ttf-out-quint);\n }\n</style>\n","<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon\n :name=\" isOpen ? 'chevron-down' : 'chevron-right'\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIcon } from '@/components/icon';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIcon,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","_openBlock","_createBlock","_Transition","_mergeProps","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","_renderSlot","DtButton","DtLazyShow","DtIcon","getUniqueString","extractVueListeners","hasSlotContent","_toHandlers","_createElementVNode","_createVNode","_normalizeStyle"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { DtIcon } from "./icon.js";
7
7
  import "../common/constants.js";
8
8
  import "../chunks/link_constants-AfTWrr-n.js";
9
9
  import "@dialpad/dialtone-icons/vue3";
10
- import "../chunks/icon_constants-gIQj4mf7.js";
10
+ import "../chunks/icon_constants-Dy4MEUJL.js";
11
11
  import "@dialpad/dialtone-icons/icons.json";
12
12
  const _sfc_main$1 = {
13
13
  name: "DtCollapsibleLazyShow",
@@ -139,12 +139,16 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
139
139
  onLeave: $options.leave,
140
140
  onAfterLeave: $options.afterLeave
141
141
  }), {
142
- default: withCtx(() => [withDirectives((openBlock(), createBlock(resolveDynamicComponent($props.elementType), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
143
- default: withCtx(() => [$data.initialized ? renderSlot(_ctx.$slots, "default", {
144
- key: 0
145
- }) : createCommentVNode("", true)]),
146
- _: 3
147
- }, 16)), [[vShow, $props.show]])]),
142
+ default: withCtx(() => [
143
+ withDirectives((openBlock(), createBlock(resolveDynamicComponent($props.elementType), normalizeProps(guardReactiveProps(_ctx.$attrs)), {
144
+ default: withCtx(() => [
145
+ $data.initialized ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("", true)
146
+ ]),
147
+ _: 3
148
+ }, 16)), [
149
+ [vShow, $props.show]
150
+ ])
151
+ ]),
148
152
  _: 3
149
153
  }, 16, ["appear", "css", "onBeforeEnter", "onEnter", "onAfterEnter", "onBeforeLeave", "onLeave", "onAfterLeave"]);
150
154
  }
@@ -320,61 +324,71 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
320
324
  const _component_dt_icon = resolveComponent("dt-icon");
321
325
  const _component_dt_button = resolveComponent("dt-button");
322
326
  const _component_dt_collapsible_lazy_show = resolveComponent("dt-collapsible-lazy-show");
323
- return openBlock(), createBlock(resolveDynamicComponent($props.elementType), mergeProps({
324
- ref: "collapsible"
325
- }, toHandlers($options.collapsibleListeners)), {
326
- default: withCtx(() => [createElementVNode("div", {
327
- id: !$props.ariaLabelledBy && $options.labelledBy,
328
- ref: "anchor",
329
- class: normalizeClass($props.anchorClass)
330
- }, [renderSlot(_ctx.$slots, "anchor", {
331
- attrs: {
332
- "aria-controls": $props.id,
333
- "aria-expanded": $data.isOpen.toString(),
334
- "role": "button"
335
- }
336
- }, () => [createVNode(_component_dt_button, {
337
- importance: "clear",
338
- kind: "muted",
339
- "aria-controls": $props.id,
340
- "aria-expanded": `${$data.isOpen}`,
341
- style: normalizeStyle({
342
- "width": $props.maxWidth
343
- }),
344
- onClick: $options.defaultToggleOpen
345
- }, {
346
- default: withCtx(() => [createVNode(_component_dt_icon, {
347
- name: $data.isOpen ? "chevron-down" : "chevron-right",
348
- class: "d-collapsible__icon",
349
- size: "300"
350
- }, null, 8, ["name"]), createElementVNode("span", {
351
- class: "d-collapsible__anchor-text",
352
- title: $props.anchorText
353
- }, toDisplayString($props.anchorText), 9, _hoisted_2)]),
354
- _: 1
355
- }, 8, ["aria-controls", "aria-expanded", "style", "onClick"])])], 10, _hoisted_1), createVNode(_component_dt_collapsible_lazy_show, mergeProps({
356
- id: $props.id,
357
- ref: "contentWrapper",
358
- "aria-hidden": `${!$data.isOpen}`,
359
- "aria-labelledby": $options.labelledBy,
360
- "aria-label": $props.ariaLabel,
361
- show: $data.isOpen,
362
- "element-type": $props.contentElementType,
363
- class: $props.contentClass,
364
- style: {
365
- "max-height": $props.maxHeight,
366
- "max-width": $props.maxWidth
367
- },
368
- "data-qa": "dt-collapsible--content",
369
- tabindex: "-1",
370
- appear: ""
371
- }, toHandlers($options.collapsibleListeners), {
372
- onAfterLeave: $options.onLeaveTransitionComplete,
373
- onAfterEnter: $options.onEnterTransitionComplete
374
- }), {
375
- default: withCtx(() => [renderSlot(_ctx.$slots, "content")]),
376
- _: 3
377
- }, 16, ["id", "aria-hidden", "aria-labelledby", "aria-label", "show", "element-type", "class", "style", "onAfterLeave", "onAfterEnter"])]),
327
+ return openBlock(), createBlock(resolveDynamicComponent($props.elementType), mergeProps({ ref: "collapsible" }, toHandlers($options.collapsibleListeners)), {
328
+ default: withCtx(() => [
329
+ createElementVNode("div", {
330
+ id: !$props.ariaLabelledBy && $options.labelledBy,
331
+ ref: "anchor",
332
+ class: normalizeClass($props.anchorClass)
333
+ }, [
334
+ renderSlot(_ctx.$slots, "anchor", {
335
+ attrs: {
336
+ "aria-controls": $props.id,
337
+ "aria-expanded": $data.isOpen.toString(),
338
+ "role": "button"
339
+ }
340
+ }, () => [
341
+ createVNode(_component_dt_button, {
342
+ importance: "clear",
343
+ kind: "muted",
344
+ "aria-controls": $props.id,
345
+ "aria-expanded": `${$data.isOpen}`,
346
+ style: normalizeStyle({
347
+ "width": $props.maxWidth
348
+ }),
349
+ onClick: $options.defaultToggleOpen
350
+ }, {
351
+ default: withCtx(() => [
352
+ createVNode(_component_dt_icon, {
353
+ name: $data.isOpen ? "chevron-down" : "chevron-right",
354
+ class: "d-collapsible__icon",
355
+ size: "300"
356
+ }, null, 8, ["name"]),
357
+ createElementVNode("span", {
358
+ class: "d-collapsible__anchor-text",
359
+ title: $props.anchorText
360
+ }, toDisplayString($props.anchorText), 9, _hoisted_2)
361
+ ]),
362
+ _: 1
363
+ }, 8, ["aria-controls", "aria-expanded", "style", "onClick"])
364
+ ])
365
+ ], 10, _hoisted_1),
366
+ createVNode(_component_dt_collapsible_lazy_show, mergeProps({
367
+ id: $props.id,
368
+ ref: "contentWrapper",
369
+ "aria-hidden": `${!$data.isOpen}`,
370
+ "aria-labelledby": $options.labelledBy,
371
+ "aria-label": $props.ariaLabel,
372
+ show: $data.isOpen,
373
+ "element-type": $props.contentElementType,
374
+ class: $props.contentClass,
375
+ style: {
376
+ "max-height": $props.maxHeight,
377
+ "max-width": $props.maxWidth
378
+ },
379
+ "data-qa": "dt-collapsible--content",
380
+ tabindex: "-1",
381
+ appear: ""
382
+ }, toHandlers($options.collapsibleListeners), {
383
+ onAfterLeave: $options.onLeaveTransitionComplete,
384
+ onAfterEnter: $options.onEnterTransitionComplete
385
+ }), {
386
+ default: withCtx(() => [
387
+ renderSlot(_ctx.$slots, "content")
388
+ ]),
389
+ _: 3
390
+ }, 16, ["id", "aria-hidden", "aria-labelledby", "aria-label", "show", "element-type", "class", "style", "onAfterLeave", "onAfterEnter"])
391
+ ]),
378
392
  _: 3
379
393
  }, 16);
380
394
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.js","sources":["../../components/collapsible/collapsible_lazy_show.vue","../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <!-- applies the transition on initial render -->\n <transition\n :appear=\"appear\"\n enter-active-class=\"enter-active\"\n leave-active-class=\"leave-active\"\n v-bind=\"$attrs\"\n :css=\"isCSSEnabled\"\n @before-enter=\"beforeEnter\"\n @enter=\"enter\"\n @after-enter=\"afterEnter\"\n @before-leave=\"beforeLeave\"\n @leave=\"leave\"\n @after-leave=\"afterLeave\"\n >\n <component\n :is=\"elementType\"\n v-show=\"show\"\n v-bind=\"$attrs\"\n >\n <!-- @slot slot for Content within collapsible -->\n <slot v-if=\"initialized\" />\n </component>\n </transition>\n</template>\n\n<script>\nexport default {\n name: 'DtCollapsibleLazyShow',\n\n inheritAttrs: false,\n\n /******************\n * PROPS *\n ******************/\n props: {\n /**\n * Whether the child slot is shown.\n */\n show: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Enable/Disable transition animation\n */\n appear: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n },\n\n /******************\n * DATA *\n ******************/\n data () {\n return {\n initialized: !!this.show,\n };\n },\n\n /******************\n * COMPUTED *\n ******************/\n computed: {\n /**\n * Set the css property to false when running tests only.\n * Refer to: https://vuejs.org/guide/built-ins/transition.html#javascript-hooks for details about\n * transition `css` property\n * @returns {boolean}\n */\n isCSSEnabled () {\n return process.env.NODE_ENV !== 'test';\n },\n },\n\n /******************\n * WATCH *\n ******************/\n watch: {\n show: function (newValue) {\n if (!newValue || this.initialized) return;\n\n this.initialized = true;\n },\n },\n\n methods: {\n /**\n * @param {HTMLElement} element\n */\n beforeEnter (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = '0px';\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n enter (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = `${element.scrollHeight}px`;\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterEnter (element) {\n element.style.height = null;\n },\n\n /**\n * @param {HTMLElement} element\n */\n beforeLeave (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = `${element.offsetHeight}px`;\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n leave (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = '0px';\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterLeave (element) {\n element.style.height = null;\n },\n },\n};\n</script>\n\n<style>\n .enter-active,\n .leave-active {\n overflow: hidden;\n transition: height var(--td300) var(--ttf-out-quint);\n }\n</style>\n","<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon\n :name=\" isOpen ? 'chevron-down' : 'chevron-right'\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIcon } from '@/components/icon';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIcon,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","inheritAttrs","props","show","type","Boolean","default","appear","elementType","String","data","initialized","computed","isCSSEnabled","process","env","NODE_ENV","watch","newValue","methods","beforeEnter","element","requestAnimationFrame","style","height","enter","scrollHeight","afterEnter","beforeLeave","offsetHeight","leave","afterLeave","_openBlock","_createBlock","_Transition","_mergeProps","$props","_ctx","$attrs","css","$options","onBeforeEnter","onEnter","onAfterEnter","onBeforeLeave","onLeave","onAfterLeave","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","$data","_renderSlot","$slots","key","components","DtButton","DtCollapsibleLazyShow","DtLazyShow","DtIcon","anchorText","open","id","getUniqueString","contentElementType","anchorClass","Array","Object","contentClass","maxWidth","maxHeight","ariaLabel","ariaLabelledBy","emits","isOpen","labelledBy","collapsibleListeners","extractVueListeners","handler","immediate","created","validateProperAnchor","onLeaveTransitionComplete","$emit","onEnterTransitionComplete","$refs","content","defaultToggleOpen","toggleOpen","hasSlotContent","anchor","console","error","ref","_toHandlers","_createElementVNode","class","attrs","toString","_createVNode","_component_dt_button","importance","kind","_normalizeStyle","onClick","_component_dt_icon","size","title","_hoisted_2","_component_dt_collapsible_lazy_show","tabindex"],"mappings":"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"}
1
+ {"version":3,"file":"collapsible.js","sources":["../../components/collapsible/collapsible_lazy_show.vue","../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <!-- applies the transition on initial render -->\n <transition\n :appear=\"appear\"\n enter-active-class=\"enter-active\"\n leave-active-class=\"leave-active\"\n v-bind=\"$attrs\"\n :css=\"isCSSEnabled\"\n @before-enter=\"beforeEnter\"\n @enter=\"enter\"\n @after-enter=\"afterEnter\"\n @before-leave=\"beforeLeave\"\n @leave=\"leave\"\n @after-leave=\"afterLeave\"\n >\n <component\n :is=\"elementType\"\n v-show=\"show\"\n v-bind=\"$attrs\"\n >\n <!-- @slot slot for Content within collapsible -->\n <slot v-if=\"initialized\" />\n </component>\n </transition>\n</template>\n\n<script>\nexport default {\n name: 'DtCollapsibleLazyShow',\n\n inheritAttrs: false,\n\n /******************\n * PROPS *\n ******************/\n props: {\n /**\n * Whether the child slot is shown.\n */\n show: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Enable/Disable transition animation\n */\n appear: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n },\n\n /******************\n * DATA *\n ******************/\n data () {\n return {\n initialized: !!this.show,\n };\n },\n\n /******************\n * COMPUTED *\n ******************/\n computed: {\n /**\n * Set the css property to false when running tests only.\n * Refer to: https://vuejs.org/guide/built-ins/transition.html#javascript-hooks for details about\n * transition `css` property\n * @returns {boolean}\n */\n isCSSEnabled () {\n return process.env.NODE_ENV !== 'test';\n },\n },\n\n /******************\n * WATCH *\n ******************/\n watch: {\n show: function (newValue) {\n if (!newValue || this.initialized) return;\n\n this.initialized = true;\n },\n },\n\n methods: {\n /**\n * @param {HTMLElement} element\n */\n beforeEnter (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = '0px';\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n enter (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = `${element.scrollHeight}px`;\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterEnter (element) {\n element.style.height = null;\n },\n\n /**\n * @param {HTMLElement} element\n */\n beforeLeave (element) {\n requestAnimationFrame(() => {\n if (!element.style.height) {\n element.style.height = `${element.offsetHeight}px`;\n }\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n leave (element) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n element.style.height = '0px';\n });\n });\n },\n\n /**\n * @param {HTMLElement} element\n */\n afterLeave (element) {\n element.style.height = null;\n },\n },\n};\n</script>\n\n<style>\n .enter-active,\n .leave-active {\n overflow: hidden;\n transition: height var(--td300) var(--ttf-out-quint);\n }\n</style>\n","<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon\n :name=\" isOpen ? 'chevron-down' : 'chevron-right'\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIcon } from '@/components/icon';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIcon,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","_openBlock","_createBlock","_Transition","_mergeProps","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","_renderSlot","_toHandlers","_createElementVNode","_createVNode","_normalizeStyle"],"mappings":"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"}