@dialpad/dialtone 9.66.0 → 9.67.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 (801) hide show
  1. package/README.md +17 -0
  2. package/dist/tokens/doc.json +13063 -13063
  3. package/dist/vue2/chunks/{dropdown-YdCyJ5Dq.js → dropdown-6UoczdUY.js} +41 -77
  4. package/dist/vue2/chunks/{dropdown-YdCyJ5Dq.js.map → dropdown-6UoczdUY.js.map} +1 -1
  5. package/dist/vue2/chunks/{dropdown-mjrYu_mK.js → dropdown-pHxnQPzT.js} +41 -77
  6. package/dist/vue2/chunks/{dropdown-mjrYu_mK.js.map → dropdown-pHxnQPzT.js.map} +1 -1
  7. package/dist/vue2/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
  8. package/dist/vue2/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
  9. package/dist/vue2/chunks/{icon_constants-TdxqLsS2.js → icon_constants-Dy4MEUJL.js} +2 -3
  10. package/dist/vue2/chunks/icon_constants-Dy4MEUJL.js.map +1 -0
  11. package/dist/vue2/chunks/{icon_constants-VEA0wI5C.js → icon_constants-QYpmdE0R.js} +2 -3
  12. package/dist/vue2/chunks/icon_constants-QYpmdE0R.js.map +1 -0
  13. package/dist/vue2/chunks/{index-i65YVk-U.js → index-ODod4Oj_.js} +13 -5
  14. package/dist/vue2/chunks/{index-i65YVk-U.js.map → index-ODod4Oj_.js.map} +1 -1
  15. package/dist/vue2/chunks/{index-NYFNZeHH.js → index-anN_sx1F.js} +13 -5
  16. package/dist/vue2/chunks/{index-NYFNZeHH.js.map → index-anN_sx1F.js.map} +1 -1
  17. package/dist/vue2/chunks/{index-mBWay1Qb.js → index-eJ-WWRdf.js} +87 -122
  18. package/dist/vue2/chunks/{index-mBWay1Qb.js.map → index-eJ-WWRdf.js.map} +1 -1
  19. package/dist/vue2/chunks/{index-DyqUqjvI.js → index-gj1jEXP4.js} +87 -122
  20. package/dist/vue2/chunks/{index-DyqUqjvI.js.map → index-gj1jEXP4.js.map} +1 -1
  21. package/dist/vue2/chunks/{input-PhJeBN6r.js → input-6kbd8Pju.js} +9 -3
  22. package/dist/vue2/chunks/{input-PhJeBN6r.js.map → input-6kbd8Pju.js.map} +1 -1
  23. package/dist/vue2/chunks/{input-Hqw33WBe.js → input-Axw-wFj2.js} +9 -3
  24. package/dist/vue2/chunks/{input-Hqw33WBe.js.map → input-Axw-wFj2.js.map} +1 -1
  25. package/dist/vue2/chunks/{input_group-pE6ec9R3.js → input_group-m3cWYUfI.js} +2 -4
  26. package/dist/vue2/chunks/{input_group-ZI7aVGEp.js.map → input_group-m3cWYUfI.js.map} +1 -1
  27. package/dist/vue2/chunks/{input_group-ZI7aVGEp.js → input_group-qVZaS5Bb.js} +2 -4
  28. package/dist/vue2/chunks/{input_group-pE6ec9R3.js.map → input_group-qVZaS5Bb.js.map} +1 -1
  29. package/dist/vue2/chunks/{keyboard_list_navigation-YIqTuw1W.js → keyboard_list_navigation-ScXhrxya.js} +5 -6
  30. package/dist/{vue3/chunks/keyboard_list_navigation-x3D6RcC7.js.map → vue2/chunks/keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  31. package/dist/vue2/chunks/{keyboard_list_navigation-x3D6RcC7.js → keyboard_list_navigation-fJnl_Iox.js} +5 -6
  32. package/dist/{vue3/chunks/keyboard_list_navigation-YIqTuw1W.js.map → vue2/chunks/keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  33. package/dist/vue2/chunks/link_constants-AfTWrr-n.js.map +1 -1
  34. package/dist/vue2/chunks/link_constants-x8NwdqmA.js.map +1 -1
  35. package/dist/vue2/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
  36. package/dist/vue2/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
  37. package/dist/vue2/chunks/{modal-OaWxzqNt.js → modal-VgxXAQFP.js} +2 -4
  38. package/dist/vue2/chunks/{modal-OaWxzqNt.js.map → modal-VgxXAQFP.js.map} +1 -1
  39. package/dist/vue2/chunks/{modal-8X6poIZW.js → modal-XOr4kiNZ.js} +2 -4
  40. package/dist/{vue3/chunks/modal-OaWxzqNt.js.map → vue2/chunks/modal-XOr4kiNZ.js.map} +1 -1
  41. package/dist/vue2/chunks/{notice_action-qQr3K2TC.js → notice_action-IRUoLX2d.js} +46 -71
  42. package/dist/vue2/chunks/{notice_action-qQr3K2TC.js.map → notice_action-IRUoLX2d.js.map} +1 -1
  43. package/dist/vue2/chunks/{notice_action-tEvvMg7Q.js → notice_action-P6uDyE9x.js} +46 -71
  44. package/dist/vue2/chunks/{notice_action-tEvvMg7Q.js.map → notice_action-P6uDyE9x.js.map} +1 -1
  45. package/dist/vue2/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
  46. package/dist/vue2/chunks/notice_constants-UXo9e3bS.js.map +1 -1
  47. package/dist/vue2/chunks/{popover_constants-6YkPPbnk.js → popover_constants-WsOUIY-m.js} +47 -26
  48. package/dist/{vue3/chunks/popover_constants-6YkPPbnk.js.map → vue2/chunks/popover_constants-WsOUIY-m.js.map} +1 -1
  49. package/dist/{vue3/chunks/popover_constants-h9MD6WUt.js → vue2/chunks/popover_constants-XnGWXaxX.js} +47 -26
  50. package/dist/vue2/chunks/{popover_constants-6YkPPbnk.js.map → popover_constants-XnGWXaxX.js.map} +1 -1
  51. package/dist/vue2/chunks/{sr_only_close_button-IjMVfBDE.js → sr_only_close_button-81bHIpPu.js} +18 -24
  52. package/dist/vue2/chunks/{sr_only_close_button-IjMVfBDE.js.map → sr_only_close_button-81bHIpPu.js.map} +1 -1
  53. package/dist/vue2/chunks/{sr_only_close_button-2Q9Ny1Nc.js → sr_only_close_button-ZaGdAHz7.js} +18 -24
  54. package/dist/vue2/chunks/{sr_only_close_button-2Q9Ny1Nc.js.map → sr_only_close_button-ZaGdAHz7.js.map} +1 -1
  55. package/dist/vue2/chunks/stack_constants-HraCekPm.js.map +1 -1
  56. package/dist/vue2/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
  57. package/dist/vue2/chunks/{tab-79yMX6m6.js → tab-FcsV5VmK.js} +68 -86
  58. package/dist/vue2/chunks/{tab-muPOS7JE.js.map → tab-FcsV5VmK.js.map} +1 -1
  59. package/dist/vue2/chunks/{tab-muPOS7JE.js → tab-V4cb44Ry.js} +68 -86
  60. package/dist/vue2/chunks/{tab-79yMX6m6.js.map → tab-V4cb44Ry.js.map} +1 -1
  61. package/dist/vue2/common/constants.cjs.map +1 -1
  62. package/dist/vue2/common/constants.js.map +1 -1
  63. package/dist/vue2/common/dates.cjs +1 -3
  64. package/dist/vue2/common/dates.cjs.map +1 -1
  65. package/dist/vue2/common/dates.js +1 -3
  66. package/dist/vue2/common/dates.js.map +1 -1
  67. package/dist/vue2/common/emoji.cjs +1 -1
  68. package/dist/vue2/common/emoji.js +1 -1
  69. package/dist/vue2/common/mixins.cjs +3 -3
  70. package/dist/vue2/common/mixins.js +3 -3
  71. package/dist/vue2/common/utils.cjs +44 -8
  72. package/dist/vue2/common/utils.cjs.map +1 -1
  73. package/dist/vue2/common/utils.js +44 -8
  74. package/dist/vue2/common/utils.js.map +1 -1
  75. package/dist/vue2/common/validators.cjs.map +1 -1
  76. package/dist/vue2/common/validators.js.map +1 -1
  77. package/dist/vue2/component-documentation.json +1 -1
  78. package/dist/vue2/dialtone-vue.cjs +12 -12
  79. package/dist/vue2/dialtone-vue.js +12 -12
  80. package/dist/vue2/lib/attachment-carousel.cjs +48 -172
  81. package/dist/vue2/lib/attachment-carousel.cjs.map +1 -1
  82. package/dist/vue2/lib/attachment-carousel.js +48 -172
  83. package/dist/vue2/lib/attachment-carousel.js.map +1 -1
  84. package/dist/vue2/lib/avatar.cjs +58 -75
  85. package/dist/vue2/lib/avatar.cjs.map +1 -1
  86. package/dist/vue2/lib/avatar.js +58 -75
  87. package/dist/vue2/lib/avatar.js.map +1 -1
  88. package/dist/vue2/lib/badge.cjs +20 -31
  89. package/dist/vue2/lib/badge.cjs.map +1 -1
  90. package/dist/vue2/lib/badge.js +20 -31
  91. package/dist/vue2/lib/badge.js.map +1 -1
  92. package/dist/vue2/lib/banner.cjs +29 -53
  93. package/dist/vue2/lib/banner.cjs.map +1 -1
  94. package/dist/vue2/lib/banner.js +29 -53
  95. package/dist/vue2/lib/banner.js.map +1 -1
  96. package/dist/vue2/lib/breadcrumbs.cjs +30 -36
  97. package/dist/vue2/lib/breadcrumbs.cjs.map +1 -1
  98. package/dist/vue2/lib/breadcrumbs.js +30 -36
  99. package/dist/vue2/lib/breadcrumbs.js.map +1 -1
  100. package/dist/vue2/lib/button-group.cjs +14 -7
  101. package/dist/vue2/lib/button-group.cjs.map +1 -1
  102. package/dist/vue2/lib/button-group.js +14 -7
  103. package/dist/vue2/lib/button-group.js.map +1 -1
  104. package/dist/vue2/lib/button.cjs +62 -55
  105. package/dist/vue2/lib/button.cjs.map +1 -1
  106. package/dist/vue2/lib/button.js +62 -55
  107. package/dist/vue2/lib/button.js.map +1 -1
  108. package/dist/vue2/lib/callbar-button-with-popover.cjs +23 -91
  109. package/dist/vue2/lib/callbar-button-with-popover.cjs.map +1 -1
  110. package/dist/vue2/lib/callbar-button-with-popover.js +23 -91
  111. package/dist/vue2/lib/callbar-button-with-popover.js.map +1 -1
  112. package/dist/vue2/lib/callbar-button.cjs +33 -49
  113. package/dist/vue2/lib/callbar-button.cjs.map +1 -1
  114. package/dist/vue2/lib/callbar-button.js +33 -49
  115. package/dist/vue2/lib/callbar-button.js.map +1 -1
  116. package/dist/vue2/lib/callbox.cjs +15 -78
  117. package/dist/vue2/lib/callbox.cjs.map +1 -1
  118. package/dist/vue2/lib/callbox.js +15 -78
  119. package/dist/vue2/lib/callbox.js.map +1 -1
  120. package/dist/vue2/lib/card.cjs +23 -16
  121. package/dist/vue2/lib/card.cjs.map +1 -1
  122. package/dist/vue2/lib/card.js +23 -16
  123. package/dist/vue2/lib/card.js.map +1 -1
  124. package/dist/vue2/lib/checkbox-group.cjs +15 -3
  125. package/dist/vue2/lib/checkbox-group.cjs.map +1 -1
  126. package/dist/vue2/lib/checkbox-group.js +15 -3
  127. package/dist/vue2/lib/checkbox-group.js.map +1 -1
  128. package/dist/vue2/lib/checkbox.cjs +16 -52
  129. package/dist/vue2/lib/checkbox.cjs.map +1 -1
  130. package/dist/vue2/lib/checkbox.js +16 -52
  131. package/dist/vue2/lib/checkbox.js.map +1 -1
  132. package/dist/vue2/lib/chip.cjs +26 -58
  133. package/dist/vue2/lib/chip.cjs.map +1 -1
  134. package/dist/vue2/lib/chip.js +26 -58
  135. package/dist/vue2/lib/chip.js.map +1 -1
  136. package/dist/vue2/lib/codeblock.cjs +11 -4
  137. package/dist/vue2/lib/codeblock.cjs.map +1 -1
  138. package/dist/vue2/lib/codeblock.js +11 -4
  139. package/dist/vue2/lib/codeblock.js.map +1 -1
  140. package/dist/vue2/lib/collapsible.cjs +34 -91
  141. package/dist/vue2/lib/collapsible.cjs.map +1 -1
  142. package/dist/vue2/lib/collapsible.js +34 -91
  143. package/dist/vue2/lib/collapsible.js.map +1 -1
  144. package/dist/vue2/lib/combobox-multi-select.cjs +38 -131
  145. package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -1
  146. package/dist/vue2/lib/combobox-multi-select.js +38 -131
  147. package/dist/vue2/lib/combobox-multi-select.js.map +1 -1
  148. package/dist/vue2/lib/combobox-with-popover.cjs +39 -130
  149. package/dist/vue2/lib/combobox-with-popover.cjs.map +1 -1
  150. package/dist/vue2/lib/combobox-with-popover.js +39 -130
  151. package/dist/vue2/lib/combobox-with-popover.js.map +1 -1
  152. package/dist/vue2/lib/combobox.cjs +3 -3
  153. package/dist/vue2/lib/combobox.js +3 -3
  154. package/dist/vue2/lib/contact-centers-row.cjs +29 -86
  155. package/dist/vue2/lib/contact-centers-row.cjs.map +1 -1
  156. package/dist/vue2/lib/contact-centers-row.js +29 -86
  157. package/dist/vue2/lib/contact-centers-row.js.map +1 -1
  158. package/dist/vue2/lib/contact-info.cjs +31 -95
  159. package/dist/vue2/lib/contact-info.cjs.map +1 -1
  160. package/dist/vue2/lib/contact-info.js +31 -95
  161. package/dist/vue2/lib/contact-info.js.map +1 -1
  162. package/dist/vue2/lib/contact-row.cjs +18 -61
  163. package/dist/vue2/lib/contact-row.cjs.map +1 -1
  164. package/dist/vue2/lib/contact-row.js +18 -61
  165. package/dist/vue2/lib/contact-row.js.map +1 -1
  166. package/dist/vue2/lib/datepicker.cjs +102 -361
  167. package/dist/vue2/lib/datepicker.cjs.map +1 -1
  168. package/dist/vue2/lib/datepicker.js +102 -361
  169. package/dist/vue2/lib/datepicker.js.map +1 -1
  170. package/dist/vue2/lib/description-list.cjs +12 -11
  171. package/dist/vue2/lib/description-list.cjs.map +1 -1
  172. package/dist/vue2/lib/description-list.js +12 -11
  173. package/dist/vue2/lib/description-list.js.map +1 -1
  174. package/dist/vue2/lib/dropdown.cjs +17 -13
  175. package/dist/vue2/lib/dropdown.cjs.map +1 -1
  176. package/dist/vue2/lib/dropdown.js +17 -13
  177. package/dist/vue2/lib/dropdown.js.map +1 -1
  178. package/dist/vue2/lib/editor.cjs +109 -409
  179. package/dist/vue2/lib/editor.cjs.map +1 -1
  180. package/dist/vue2/lib/editor.js +109 -409
  181. package/dist/vue2/lib/editor.js.map +1 -1
  182. package/dist/vue2/lib/emoji-picker.cjs +234 -512
  183. package/dist/vue2/lib/emoji-picker.cjs.map +1 -1
  184. package/dist/vue2/lib/emoji-picker.js +234 -512
  185. package/dist/vue2/lib/emoji-picker.js.map +1 -1
  186. package/dist/vue2/lib/emoji-row.cjs +31 -69
  187. package/dist/vue2/lib/emoji-row.cjs.map +1 -1
  188. package/dist/vue2/lib/emoji-row.js +31 -69
  189. package/dist/vue2/lib/emoji-row.js.map +1 -1
  190. package/dist/vue2/lib/emoji-text-wrapper.cjs +22 -14
  191. package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -1
  192. package/dist/vue2/lib/emoji-text-wrapper.js +22 -14
  193. package/dist/vue2/lib/emoji-text-wrapper.js.map +1 -1
  194. package/dist/vue2/lib/emoji.cjs +13 -40
  195. package/dist/vue2/lib/emoji.cjs.map +1 -1
  196. package/dist/vue2/lib/emoji.js +13 -40
  197. package/dist/vue2/lib/emoji.js.map +1 -1
  198. package/dist/vue2/lib/empty-state.cjs +12 -27
  199. package/dist/vue2/lib/empty-state.cjs.map +1 -1
  200. package/dist/vue2/lib/empty-state.js +12 -27
  201. package/dist/vue2/lib/empty-state.js.map +1 -1
  202. package/dist/vue2/lib/feed-item-row.cjs +27 -106
  203. package/dist/vue2/lib/feed-item-row.cjs.map +1 -1
  204. package/dist/vue2/lib/feed-item-row.js +27 -106
  205. package/dist/vue2/lib/feed-item-row.js.map +1 -1
  206. package/dist/vue2/lib/feed-pill.cjs +35 -90
  207. package/dist/vue2/lib/feed-pill.cjs.map +1 -1
  208. package/dist/vue2/lib/feed-pill.js +35 -90
  209. package/dist/vue2/lib/feed-pill.js.map +1 -1
  210. package/dist/vue2/lib/general-row.cjs +75 -184
  211. package/dist/vue2/lib/general-row.cjs.map +1 -1
  212. package/dist/vue2/lib/general-row.js +75 -184
  213. package/dist/vue2/lib/general-row.js.map +1 -1
  214. package/dist/vue2/lib/group-row.cjs +16 -27
  215. package/dist/vue2/lib/group-row.cjs.map +1 -1
  216. package/dist/vue2/lib/group-row.js +16 -27
  217. package/dist/vue2/lib/group-row.js.map +1 -1
  218. package/dist/vue2/lib/grouped-chip.cjs +20 -68
  219. package/dist/vue2/lib/grouped-chip.cjs.map +1 -1
  220. package/dist/vue2/lib/grouped-chip.js +20 -68
  221. package/dist/vue2/lib/grouped-chip.js.map +1 -1
  222. package/dist/vue2/lib/hovercard.cjs +41 -71
  223. package/dist/vue2/lib/hovercard.cjs.map +1 -1
  224. package/dist/vue2/lib/hovercard.js +41 -71
  225. package/dist/vue2/lib/hovercard.js.map +1 -1
  226. package/dist/vue2/lib/icon.cjs +12 -10
  227. package/dist/vue2/lib/icon.cjs.map +1 -1
  228. package/dist/vue2/lib/icon.js +12 -10
  229. package/dist/vue2/lib/icon.js.map +1 -1
  230. package/dist/vue2/lib/illustration.cjs +12 -9
  231. package/dist/vue2/lib/illustration.cjs.map +1 -1
  232. package/dist/vue2/lib/illustration.js +12 -9
  233. package/dist/vue2/lib/illustration.js.map +1 -1
  234. package/dist/vue2/lib/image-viewer.cjs +23 -88
  235. package/dist/vue2/lib/image-viewer.cjs.map +1 -1
  236. package/dist/vue2/lib/image-viewer.js +23 -88
  237. package/dist/vue2/lib/image-viewer.js.map +1 -1
  238. package/dist/vue2/lib/input-group.cjs +14 -24
  239. package/dist/vue2/lib/input-group.cjs.map +1 -1
  240. package/dist/vue2/lib/input-group.js +14 -24
  241. package/dist/vue2/lib/input-group.js.map +1 -1
  242. package/dist/vue2/lib/input.cjs +47 -109
  243. package/dist/vue2/lib/input.cjs.map +1 -1
  244. package/dist/vue2/lib/input.js +47 -109
  245. package/dist/vue2/lib/input.js.map +1 -1
  246. package/dist/vue2/lib/item-layout.cjs +11 -42
  247. package/dist/vue2/lib/item-layout.cjs.map +1 -1
  248. package/dist/vue2/lib/item-layout.js +11 -42
  249. package/dist/vue2/lib/item-layout.js.map +1 -1
  250. package/dist/vue2/lib/ivr-node.cjs +47 -135
  251. package/dist/vue2/lib/ivr-node.cjs.map +1 -1
  252. package/dist/vue2/lib/ivr-node.js +47 -135
  253. package/dist/vue2/lib/ivr-node.js.map +1 -1
  254. package/dist/vue2/lib/keyboard-shortcut.cjs +23 -35
  255. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
  256. package/dist/vue2/lib/keyboard-shortcut.js +23 -35
  257. package/dist/vue2/lib/keyboard-shortcut.js.map +1 -1
  258. package/dist/vue2/lib/lazy-show.cjs +11 -15
  259. package/dist/vue2/lib/lazy-show.cjs.map +1 -1
  260. package/dist/vue2/lib/lazy-show.js +11 -15
  261. package/dist/vue2/lib/lazy-show.js.map +1 -1
  262. package/dist/vue2/lib/link.cjs +15 -9
  263. package/dist/vue2/lib/link.cjs.map +1 -1
  264. package/dist/vue2/lib/link.js +15 -9
  265. package/dist/vue2/lib/link.js.map +1 -1
  266. package/dist/vue2/lib/list-item-group.cjs +11 -17
  267. package/dist/vue2/lib/list-item-group.cjs.map +1 -1
  268. package/dist/vue2/lib/list-item-group.js +11 -17
  269. package/dist/vue2/lib/list-item-group.js.map +1 -1
  270. package/dist/vue2/lib/list-item.cjs +23 -42
  271. package/dist/vue2/lib/list-item.cjs.map +1 -1
  272. package/dist/vue2/lib/list-item.js +23 -42
  273. package/dist/vue2/lib/list-item.js.map +1 -1
  274. package/dist/vue2/lib/message-input.cjs +97 -360
  275. package/dist/vue2/lib/message-input.cjs.map +1 -1
  276. package/dist/vue2/lib/message-input.js +97 -360
  277. package/dist/vue2/lib/message-input.js.map +1 -1
  278. package/dist/vue2/lib/modal.cjs +36 -94
  279. package/dist/vue2/lib/modal.cjs.map +1 -1
  280. package/dist/vue2/lib/modal.js +36 -94
  281. package/dist/vue2/lib/modal.js.map +1 -1
  282. package/dist/vue2/lib/notice.cjs +21 -40
  283. package/dist/vue2/lib/notice.cjs.map +1 -1
  284. package/dist/vue2/lib/notice.js +21 -40
  285. package/dist/vue2/lib/notice.js.map +1 -1
  286. package/dist/vue2/lib/pagination.cjs +20 -81
  287. package/dist/vue2/lib/pagination.cjs.map +1 -1
  288. package/dist/vue2/lib/pagination.js +20 -81
  289. package/dist/vue2/lib/pagination.js.map +1 -1
  290. package/dist/vue2/lib/popover.cjs +75 -194
  291. package/dist/vue2/lib/popover.cjs.map +1 -1
  292. package/dist/vue2/lib/popover.js +76 -195
  293. package/dist/vue2/lib/popover.js.map +1 -1
  294. package/dist/vue2/lib/presence.cjs +22 -23
  295. package/dist/vue2/lib/presence.cjs.map +1 -1
  296. package/dist/vue2/lib/presence.js +22 -23
  297. package/dist/vue2/lib/presence.js.map +1 -1
  298. package/dist/vue2/lib/radio-group.cjs +11 -2
  299. package/dist/vue2/lib/radio-group.cjs.map +1 -1
  300. package/dist/vue2/lib/radio-group.js +11 -2
  301. package/dist/vue2/lib/radio-group.js.map +1 -1
  302. package/dist/vue2/lib/radio.cjs +15 -47
  303. package/dist/vue2/lib/radio.cjs.map +1 -1
  304. package/dist/vue2/lib/radio.js +15 -47
  305. package/dist/vue2/lib/radio.js.map +1 -1
  306. package/dist/vue2/lib/rich-text-editor.cjs +317 -336
  307. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -1
  308. package/dist/vue2/lib/rich-text-editor.js +317 -336
  309. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  310. package/dist/vue2/lib/root-layout.cjs +15 -33
  311. package/dist/vue2/lib/root-layout.cjs.map +1 -1
  312. package/dist/vue2/lib/root-layout.js +15 -33
  313. package/dist/vue2/lib/root-layout.js.map +1 -1
  314. package/dist/vue2/lib/scrollbar-directive.cjs +422 -388
  315. package/dist/vue2/lib/scrollbar-directive.cjs.map +1 -1
  316. package/dist/vue2/lib/scrollbar-directive.js +422 -388
  317. package/dist/vue2/lib/scrollbar-directive.js.map +1 -1
  318. package/dist/vue2/lib/select-menu.cjs +33 -52
  319. package/dist/vue2/lib/select-menu.cjs.map +1 -1
  320. package/dist/vue2/lib/select-menu.js +33 -52
  321. package/dist/vue2/lib/select-menu.js.map +1 -1
  322. package/dist/vue2/lib/settings-menu-button.cjs +16 -42
  323. package/dist/vue2/lib/settings-menu-button.cjs.map +1 -1
  324. package/dist/vue2/lib/settings-menu-button.js +16 -42
  325. package/dist/vue2/lib/settings-menu-button.js.map +1 -1
  326. package/dist/vue2/lib/skeleton.cjs +93 -118
  327. package/dist/vue2/lib/skeleton.cjs.map +1 -1
  328. package/dist/vue2/lib/skeleton.js +93 -118
  329. package/dist/vue2/lib/skeleton.js.map +1 -1
  330. package/dist/vue2/lib/split-button.cjs +64 -164
  331. package/dist/vue2/lib/split-button.cjs.map +1 -1
  332. package/dist/vue2/lib/split-button.js +64 -164
  333. package/dist/vue2/lib/split-button.js.map +1 -1
  334. package/dist/vue2/lib/stack.cjs +33 -21
  335. package/dist/vue2/lib/stack.cjs.map +1 -1
  336. package/dist/vue2/lib/stack.js +33 -21
  337. package/dist/vue2/lib/stack.js.map +1 -1
  338. package/dist/vue2/lib/tabs.cjs +13 -20
  339. package/dist/vue2/lib/tabs.cjs.map +1 -1
  340. package/dist/vue2/lib/tabs.js +13 -20
  341. package/dist/vue2/lib/tabs.js.map +1 -1
  342. package/dist/vue2/lib/time-pill.cjs +11 -8
  343. package/dist/vue2/lib/time-pill.cjs.map +1 -1
  344. package/dist/vue2/lib/time-pill.js +11 -8
  345. package/dist/vue2/lib/time-pill.js.map +1 -1
  346. package/dist/vue2/lib/toast.cjs +21 -42
  347. package/dist/vue2/lib/toast.cjs.map +1 -1
  348. package/dist/vue2/lib/toast.js +21 -42
  349. package/dist/vue2/lib/toast.js.map +1 -1
  350. package/dist/vue2/lib/toggle.cjs +24 -28
  351. package/dist/vue2/lib/toggle.cjs.map +1 -1
  352. package/dist/vue2/lib/toggle.js +24 -28
  353. package/dist/vue2/lib/toggle.js.map +1 -1
  354. package/dist/vue2/lib/tooltip-directive.cjs +26 -32
  355. package/dist/vue2/lib/tooltip-directive.cjs.map +1 -1
  356. package/dist/vue2/lib/tooltip-directive.js +26 -32
  357. package/dist/vue2/lib/tooltip-directive.js.map +1 -1
  358. package/dist/vue2/lib/tooltip.cjs +21 -31
  359. package/dist/vue2/lib/tooltip.cjs.map +1 -1
  360. package/dist/vue2/lib/tooltip.js +22 -32
  361. package/dist/vue2/lib/tooltip.js.map +1 -1
  362. package/dist/vue2/lib/top-banner-info.cjs +21 -18
  363. package/dist/vue2/lib/top-banner-info.cjs.map +1 -1
  364. package/dist/vue2/lib/top-banner-info.js +21 -18
  365. package/dist/vue2/lib/top-banner-info.js.map +1 -1
  366. package/dist/vue2/lib/unread-pill.cjs +12 -18
  367. package/dist/vue2/lib/unread-pill.cjs.map +1 -1
  368. package/dist/vue2/lib/unread-pill.js +12 -18
  369. package/dist/vue2/lib/unread-pill.js.map +1 -1
  370. package/dist/vue2/lib/validation-messages.cjs +16 -23
  371. package/dist/vue2/lib/validation-messages.cjs.map +1 -1
  372. package/dist/vue2/lib/validation-messages.js +16 -23
  373. package/dist/vue2/lib/validation-messages.js.map +1 -1
  374. package/dist/vue2/style.css +9 -9
  375. package/dist/vue2/types/common/emoji/index.d.ts +59236 -2
  376. package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
  377. package/dist/vue2/types/components/button/button.vue.d.ts +1 -1
  378. package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
  379. package/dist/vue2/types/components/combobox/combobox.vue.d.ts +1 -1
  380. package/dist/vue2/types/components/icon/icon.vue.d.ts +2 -2
  381. package/dist/vue2/types/components/icon/icon_constants.d.ts +1 -1
  382. package/dist/vue2/types/components/icon/icon_constants.d.ts.map +1 -1
  383. package/dist/vue2/types/components/illustration/illustration.vue.d.ts +2 -2
  384. package/dist/vue2/types/components/illustration/illustration_constants.d.ts +1 -1
  385. package/dist/vue2/types/components/illustration/illustration_constants.d.ts.map +1 -1
  386. package/dist/vue2/types/components/input/input.vue.d.ts +3 -2
  387. package/dist/vue2/types/components/input/input.vue.d.ts.map +1 -1
  388. package/dist/vue2/types/components/modal/modal.vue.d.ts +1 -1
  389. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
  390. package/dist/vue2/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
  391. package/dist/vue2/types/components/toast/toast.vue.d.ts +1 -1
  392. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +1 -1
  393. package/dist/vue2/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
  394. package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
  395. package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  396. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +15 -0
  397. package/dist/vue2/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  398. package/dist/vue3/chunks/{dropdown-6HXkh24e.js → dropdown-oA-_Gotg.js} +45 -40
  399. package/dist/vue3/chunks/{dropdown-6HXkh24e.js.map → dropdown-oA-_Gotg.js.map} +1 -1
  400. package/dist/vue3/chunks/{dropdown-QNvAb160.js → dropdown-p-Azgwov.js} +45 -40
  401. package/dist/vue3/chunks/{dropdown-QNvAb160.js.map → dropdown-p-Azgwov.js.map} +1 -1
  402. package/dist/vue3/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
  403. package/dist/vue3/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
  404. package/dist/vue3/chunks/{icon_constants-gIQj4mf7.js → icon_constants-Dy4MEUJL.js} +2 -3
  405. package/dist/vue3/chunks/icon_constants-Dy4MEUJL.js.map +1 -0
  406. package/dist/vue3/chunks/{icon_constants-bvhFNOPu.js → icon_constants-QYpmdE0R.js} +2 -3
  407. package/dist/vue3/chunks/icon_constants-QYpmdE0R.js.map +1 -0
  408. package/dist/vue3/chunks/{index-ouh7Bvm-.js → index-4qgKeErp.js} +84 -71
  409. package/dist/vue3/chunks/{index-T15rAIdX.js.map → index-4qgKeErp.js.map} +1 -1
  410. package/dist/vue3/chunks/{index-dfdrE-3M.js → index-GVD15GIB.js} +12 -3
  411. package/dist/vue3/chunks/{index-dfdrE-3M.js.map → index-GVD15GIB.js.map} +1 -1
  412. package/dist/vue3/chunks/{index-T15rAIdX.js → index-b_MgDylR.js} +84 -71
  413. package/dist/vue3/chunks/{index-ouh7Bvm-.js.map → index-b_MgDylR.js.map} +1 -1
  414. package/dist/vue3/chunks/{index-fEp0B-5Z.js → index-lu2o2f4r.js} +12 -3
  415. package/dist/vue3/chunks/{index-fEp0B-5Z.js.map → index-lu2o2f4r.js.map} +1 -1
  416. package/dist/vue3/chunks/{input-HIysg24t.js → input-NmYDD5bn.js} +9 -3
  417. package/dist/vue3/chunks/{input-HIysg24t.js.map → input-NmYDD5bn.js.map} +1 -1
  418. package/dist/vue3/chunks/{input-dLLo3Wtg.js → input-ttnte8zB.js} +9 -3
  419. package/dist/vue3/chunks/{input-dLLo3Wtg.js.map → input-ttnte8zB.js.map} +1 -1
  420. package/dist/vue3/chunks/{input_group-rE6nhye8.js → input_group-M-D25pOJ.js} +2 -4
  421. package/dist/vue3/chunks/{input_group-hV1WT2it.js.map → input_group-M-D25pOJ.js.map} +1 -1
  422. package/dist/vue3/chunks/{input_group-hV1WT2it.js → input_group-jWnq2DJT.js} +2 -4
  423. package/dist/vue3/chunks/{input_group-rE6nhye8.js.map → input_group-jWnq2DJT.js.map} +1 -1
  424. package/dist/vue3/chunks/{keyboard_list_navigation-YIqTuw1W.js → keyboard_list_navigation-ScXhrxya.js} +5 -6
  425. package/dist/{vue2/chunks/keyboard_list_navigation-x3D6RcC7.js.map → vue3/chunks/keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  426. package/dist/vue3/chunks/{keyboard_list_navigation-x3D6RcC7.js → keyboard_list_navigation-fJnl_Iox.js} +5 -6
  427. package/dist/{vue2/chunks/keyboard_list_navigation-YIqTuw1W.js.map → vue3/chunks/keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  428. package/dist/vue3/chunks/link_constants-AfTWrr-n.js.map +1 -1
  429. package/dist/vue3/chunks/link_constants-x8NwdqmA.js.map +1 -1
  430. package/dist/vue3/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
  431. package/dist/vue3/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
  432. package/dist/vue3/chunks/{modal-OaWxzqNt.js → modal-VgxXAQFP.js} +2 -4
  433. package/dist/{vue2/chunks/modal-8X6poIZW.js.map → vue3/chunks/modal-VgxXAQFP.js.map} +1 -1
  434. package/dist/vue3/chunks/{modal-8X6poIZW.js → modal-XOr4kiNZ.js} +2 -4
  435. package/dist/vue3/chunks/{modal-8X6poIZW.js.map → modal-XOr4kiNZ.js.map} +1 -1
  436. package/dist/vue3/chunks/{notice_action-3ed0uIMN.js → notice_action-WTucGhvr.js} +61 -40
  437. package/dist/vue3/chunks/{notice_action-e08Lw5W6.js.map → notice_action-WTucGhvr.js.map} +1 -1
  438. package/dist/vue3/chunks/{notice_action-e08Lw5W6.js → notice_action-p-ePanW_.js} +61 -40
  439. package/dist/vue3/chunks/{notice_action-3ed0uIMN.js.map → notice_action-p-ePanW_.js.map} +1 -1
  440. package/dist/vue3/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
  441. package/dist/vue3/chunks/notice_constants-UXo9e3bS.js.map +1 -1
  442. package/dist/vue3/chunks/{popover_constants-6YkPPbnk.js → popover_constants-WsOUIY-m.js} +47 -26
  443. package/dist/vue3/chunks/{popover_constants-h9MD6WUt.js.map → popover_constants-WsOUIY-m.js.map} +1 -1
  444. package/dist/{vue2/chunks/popover_constants-h9MD6WUt.js → vue3/chunks/popover_constants-XnGWXaxX.js} +47 -26
  445. package/dist/{vue2/chunks/popover_constants-h9MD6WUt.js.map → vue3/chunks/popover_constants-XnGWXaxX.js.map} +1 -1
  446. package/dist/vue3/chunks/{sr_only_close_button-Ji3Zlts6.js → sr_only_close_button-3EdsV-dH.js} +4 -4
  447. package/dist/vue3/chunks/{sr_only_close_button-Ji3Zlts6.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
  448. package/dist/vue3/chunks/{sr_only_close_button-gKr0Vlbz.js → sr_only_close_button-xGrHFjwA.js} +4 -4
  449. package/dist/vue3/chunks/{sr_only_close_button-gKr0Vlbz.js.map → sr_only_close_button-xGrHFjwA.js.map} +1 -1
  450. package/dist/vue3/chunks/stack_constants-HraCekPm.js.map +1 -1
  451. package/dist/vue3/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
  452. package/dist/vue3/chunks/{tab-aD6t0MNo.js → tab-RTDgnD9-.js} +49 -46
  453. package/dist/vue3/chunks/{tab-aD6t0MNo.js.map → tab-RTDgnD9-.js.map} +1 -1
  454. package/dist/vue3/chunks/{tab-X7IvNGTl.js → tab-qc3f42Yp.js} +49 -46
  455. package/dist/vue3/chunks/{tab-X7IvNGTl.js.map → tab-qc3f42Yp.js.map} +1 -1
  456. package/dist/vue3/common/constants.cjs.map +1 -1
  457. package/dist/vue3/common/constants.js.map +1 -1
  458. package/dist/vue3/common/dates.cjs +1 -3
  459. package/dist/vue3/common/dates.cjs.map +1 -1
  460. package/dist/vue3/common/dates.js +1 -3
  461. package/dist/vue3/common/dates.js.map +1 -1
  462. package/dist/vue3/common/emoji.cjs +1 -1
  463. package/dist/vue3/common/emoji.js +1 -1
  464. package/dist/vue3/common/mixins.cjs +3 -3
  465. package/dist/vue3/common/mixins.js +3 -3
  466. package/dist/vue3/common/utils.cjs +45 -11
  467. package/dist/vue3/common/utils.cjs.map +1 -1
  468. package/dist/vue3/common/utils.js +45 -11
  469. package/dist/vue3/common/utils.js.map +1 -1
  470. package/dist/vue3/common/validators.cjs.map +1 -1
  471. package/dist/vue3/common/validators.js.map +1 -1
  472. package/dist/vue3/component-documentation.json +1 -1
  473. package/dist/vue3/dialtone-vue.cjs +12 -12
  474. package/dist/vue3/dialtone-vue.js +12 -12
  475. package/dist/vue3/lib/attachment-carousel.cjs +108 -87
  476. package/dist/vue3/lib/attachment-carousel.cjs.map +1 -1
  477. package/dist/vue3/lib/attachment-carousel.js +108 -87
  478. package/dist/vue3/lib/attachment-carousel.js.map +1 -1
  479. package/dist/vue3/lib/avatar.cjs +88 -56
  480. package/dist/vue3/lib/avatar.cjs.map +1 -1
  481. package/dist/vue3/lib/avatar.js +88 -56
  482. package/dist/vue3/lib/avatar.js.map +1 -1
  483. package/dist/vue3/lib/badge.cjs +31 -15
  484. package/dist/vue3/lib/badge.cjs.map +1 -1
  485. package/dist/vue3/lib/badge.js +31 -15
  486. package/dist/vue3/lib/badge.js.map +1 -1
  487. package/dist/vue3/lib/banner.cjs +56 -38
  488. package/dist/vue3/lib/banner.cjs.map +1 -1
  489. package/dist/vue3/lib/banner.js +56 -38
  490. package/dist/vue3/lib/banner.js.map +1 -1
  491. package/dist/vue3/lib/breadcrumbs.cjs +36 -25
  492. package/dist/vue3/lib/breadcrumbs.cjs.map +1 -1
  493. package/dist/vue3/lib/breadcrumbs.js +36 -25
  494. package/dist/vue3/lib/breadcrumbs.js.map +1 -1
  495. package/dist/vue3/lib/button-group.cjs +7 -2
  496. package/dist/vue3/lib/button-group.cjs.map +1 -1
  497. package/dist/vue3/lib/button-group.js +7 -2
  498. package/dist/vue3/lib/button-group.js.map +1 -1
  499. package/dist/vue3/lib/button.cjs +69 -44
  500. package/dist/vue3/lib/button.cjs.map +1 -1
  501. package/dist/vue3/lib/button.js +69 -44
  502. package/dist/vue3/lib/button.js.map +1 -1
  503. package/dist/vue3/lib/callbar-button-with-popover.cjs +81 -68
  504. package/dist/vue3/lib/callbar-button-with-popover.cjs.map +1 -1
  505. package/dist/vue3/lib/callbar-button-with-popover.js +81 -68
  506. package/dist/vue3/lib/callbar-button-with-popover.js.map +1 -1
  507. package/dist/vue3/lib/callbar-button.cjs +45 -32
  508. package/dist/vue3/lib/callbar-button.cjs.map +1 -1
  509. package/dist/vue3/lib/callbar-button.js +45 -32
  510. package/dist/vue3/lib/callbar-button.js.map +1 -1
  511. package/dist/vue3/lib/callbox.cjs +57 -38
  512. package/dist/vue3/lib/callbox.cjs.map +1 -1
  513. package/dist/vue3/lib/callbox.js +57 -38
  514. package/dist/vue3/lib/callbox.js.map +1 -1
  515. package/dist/vue3/lib/card.cjs +33 -13
  516. package/dist/vue3/lib/card.cjs.map +1 -1
  517. package/dist/vue3/lib/card.js +33 -13
  518. package/dist/vue3/lib/card.js.map +1 -1
  519. package/dist/vue3/lib/checkbox-group.cjs +5 -2
  520. package/dist/vue3/lib/checkbox-group.cjs.map +1 -1
  521. package/dist/vue3/lib/checkbox-group.js +5 -2
  522. package/dist/vue3/lib/checkbox-group.js.map +1 -1
  523. package/dist/vue3/lib/checkbox.cjs +45 -41
  524. package/dist/vue3/lib/checkbox.cjs.map +1 -1
  525. package/dist/vue3/lib/checkbox.js +45 -41
  526. package/dist/vue3/lib/checkbox.js.map +1 -1
  527. package/dist/vue3/lib/chip.cjs +53 -38
  528. package/dist/vue3/lib/chip.cjs.map +1 -1
  529. package/dist/vue3/lib/chip.js +53 -38
  530. package/dist/vue3/lib/chip.js.map +1 -1
  531. package/dist/vue3/lib/codeblock.cjs +6 -4
  532. package/dist/vue3/lib/codeblock.cjs.map +1 -1
  533. package/dist/vue3/lib/codeblock.js +6 -4
  534. package/dist/vue3/lib/codeblock.js.map +1 -1
  535. package/dist/vue3/lib/collapsible.cjs +76 -62
  536. package/dist/vue3/lib/collapsible.cjs.map +1 -1
  537. package/dist/vue3/lib/collapsible.js +76 -62
  538. package/dist/vue3/lib/collapsible.js.map +1 -1
  539. package/dist/vue3/lib/combobox-multi-select.cjs +88 -75
  540. package/dist/vue3/lib/combobox-multi-select.cjs.map +1 -1
  541. package/dist/vue3/lib/combobox-multi-select.js +88 -75
  542. package/dist/vue3/lib/combobox-multi-select.js.map +1 -1
  543. package/dist/vue3/lib/combobox-with-popover.cjs +85 -77
  544. package/dist/vue3/lib/combobox-with-popover.cjs.map +1 -1
  545. package/dist/vue3/lib/combobox-with-popover.js +85 -77
  546. package/dist/vue3/lib/combobox-with-popover.js.map +1 -1
  547. package/dist/vue3/lib/combobox.cjs +3 -3
  548. package/dist/vue3/lib/combobox.js +3 -3
  549. package/dist/vue3/lib/contact-centers-row.cjs +89 -65
  550. package/dist/vue3/lib/contact-centers-row.cjs.map +1 -1
  551. package/dist/vue3/lib/contact-centers-row.js +89 -65
  552. package/dist/vue3/lib/contact-centers-row.js.map +1 -1
  553. package/dist/vue3/lib/contact-info.cjs +82 -59
  554. package/dist/vue3/lib/contact-info.cjs.map +1 -1
  555. package/dist/vue3/lib/contact-info.js +82 -59
  556. package/dist/vue3/lib/contact-info.js.map +1 -1
  557. package/dist/vue3/lib/contact-row.cjs +47 -37
  558. package/dist/vue3/lib/contact-row.cjs.map +1 -1
  559. package/dist/vue3/lib/contact-row.js +47 -37
  560. package/dist/vue3/lib/contact-row.js.map +1 -1
  561. package/dist/vue3/lib/datepicker.cjs +263 -267
  562. package/dist/vue3/lib/datepicker.cjs.map +1 -1
  563. package/dist/vue3/lib/datepicker.js +263 -267
  564. package/dist/vue3/lib/datepicker.js.map +1 -1
  565. package/dist/vue3/lib/description-list.cjs +14 -9
  566. package/dist/vue3/lib/description-list.cjs.map +1 -1
  567. package/dist/vue3/lib/description-list.js +14 -9
  568. package/dist/vue3/lib/description-list.js.map +1 -1
  569. package/dist/vue3/lib/dropdown.cjs +6 -6
  570. package/dist/vue3/lib/dropdown.cjs.map +1 -1
  571. package/dist/vue3/lib/dropdown.js +6 -6
  572. package/dist/vue3/lib/dropdown.js.map +1 -1
  573. package/dist/vue3/lib/editor.cjs +249 -312
  574. package/dist/vue3/lib/editor.cjs.map +1 -1
  575. package/dist/vue3/lib/editor.js +249 -312
  576. package/dist/vue3/lib/editor.js.map +1 -1
  577. package/dist/vue3/lib/emoji-picker.cjs +419 -387
  578. package/dist/vue3/lib/emoji-picker.cjs.map +1 -1
  579. package/dist/vue3/lib/emoji-picker.js +419 -387
  580. package/dist/vue3/lib/emoji-picker.js.map +1 -1
  581. package/dist/vue3/lib/emoji-row.cjs +69 -59
  582. package/dist/vue3/lib/emoji-row.cjs.map +1 -1
  583. package/dist/vue3/lib/emoji-row.js +69 -59
  584. package/dist/vue3/lib/emoji-row.js.map +1 -1
  585. package/dist/vue3/lib/emoji-text-wrapper.cjs +12 -13
  586. package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -1
  587. package/dist/vue3/lib/emoji-text-wrapper.js +12 -13
  588. package/dist/vue3/lib/emoji-text-wrapper.js.map +1 -1
  589. package/dist/vue3/lib/emoji.cjs +23 -19
  590. package/dist/vue3/lib/emoji.cjs.map +1 -1
  591. package/dist/vue3/lib/emoji.js +23 -19
  592. package/dist/vue3/lib/emoji.js.map +1 -1
  593. package/dist/vue3/lib/empty-state.cjs +30 -20
  594. package/dist/vue3/lib/empty-state.cjs.map +1 -1
  595. package/dist/vue3/lib/empty-state.js +30 -20
  596. package/dist/vue3/lib/empty-state.js.map +1 -1
  597. package/dist/vue3/lib/feed-item-row.cjs +74 -43
  598. package/dist/vue3/lib/feed-item-row.cjs.map +1 -1
  599. package/dist/vue3/lib/feed-item-row.js +74 -43
  600. package/dist/vue3/lib/feed-item-row.js.map +1 -1
  601. package/dist/vue3/lib/feed-pill.cjs +55 -45
  602. package/dist/vue3/lib/feed-pill.cjs.map +1 -1
  603. package/dist/vue3/lib/feed-pill.js +55 -45
  604. package/dist/vue3/lib/feed-pill.js.map +1 -1
  605. package/dist/vue3/lib/general-row.cjs +165 -115
  606. package/dist/vue3/lib/general-row.cjs.map +1 -1
  607. package/dist/vue3/lib/general-row.js +165 -115
  608. package/dist/vue3/lib/general-row.js.map +1 -1
  609. package/dist/vue3/lib/group-row.cjs +9 -7
  610. package/dist/vue3/lib/group-row.cjs.map +1 -1
  611. package/dist/vue3/lib/group-row.js +9 -7
  612. package/dist/vue3/lib/group-row.js.map +1 -1
  613. package/dist/vue3/lib/grouped-chip.cjs +48 -27
  614. package/dist/vue3/lib/grouped-chip.cjs.map +1 -1
  615. package/dist/vue3/lib/grouped-chip.js +48 -27
  616. package/dist/vue3/lib/grouped-chip.js.map +1 -1
  617. package/dist/vue3/lib/hovercard.cjs +33 -25
  618. package/dist/vue3/lib/hovercard.cjs.map +1 -1
  619. package/dist/vue3/lib/hovercard.js +33 -25
  620. package/dist/vue3/lib/hovercard.js.map +1 -1
  621. package/dist/vue3/lib/icon.cjs +1 -1
  622. package/dist/vue3/lib/icon.cjs.map +1 -1
  623. package/dist/vue3/lib/icon.js +1 -1
  624. package/dist/vue3/lib/icon.js.map +1 -1
  625. package/dist/vue3/lib/illustration.cjs +1 -2
  626. package/dist/vue3/lib/illustration.cjs.map +1 -1
  627. package/dist/vue3/lib/illustration.js +1 -2
  628. package/dist/vue3/lib/illustration.js.map +1 -1
  629. package/dist/vue3/lib/image-viewer.cjs +66 -52
  630. package/dist/vue3/lib/image-viewer.cjs.map +1 -1
  631. package/dist/vue3/lib/image-viewer.js +66 -52
  632. package/dist/vue3/lib/image-viewer.js.map +1 -1
  633. package/dist/vue3/lib/input-group.cjs +19 -15
  634. package/dist/vue3/lib/input-group.cjs.map +1 -1
  635. package/dist/vue3/lib/input-group.js +19 -15
  636. package/dist/vue3/lib/input-group.js.map +1 -1
  637. package/dist/vue3/lib/input.cjs +114 -77
  638. package/dist/vue3/lib/input.cjs.map +1 -1
  639. package/dist/vue3/lib/input.js +114 -77
  640. package/dist/vue3/lib/input.js.map +1 -1
  641. package/dist/vue3/lib/item-layout.cjs +27 -10
  642. package/dist/vue3/lib/item-layout.cjs.map +1 -1
  643. package/dist/vue3/lib/item-layout.js +27 -10
  644. package/dist/vue3/lib/item-layout.js.map +1 -1
  645. package/dist/vue3/lib/ivr-node.cjs +89 -80
  646. package/dist/vue3/lib/ivr-node.cjs.map +1 -1
  647. package/dist/vue3/lib/ivr-node.js +89 -80
  648. package/dist/vue3/lib/ivr-node.js.map +1 -1
  649. package/dist/vue3/lib/keyboard-shortcut.cjs +31 -26
  650. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
  651. package/dist/vue3/lib/keyboard-shortcut.js +31 -26
  652. package/dist/vue3/lib/keyboard-shortcut.js.map +1 -1
  653. package/dist/vue3/lib/lazy-show.cjs +8 -6
  654. package/dist/vue3/lib/lazy-show.cjs.map +1 -1
  655. package/dist/vue3/lib/lazy-show.js +8 -6
  656. package/dist/vue3/lib/lazy-show.js.map +1 -1
  657. package/dist/vue3/lib/link.cjs +7 -2
  658. package/dist/vue3/lib/link.cjs.map +1 -1
  659. package/dist/vue3/lib/link.js +7 -2
  660. package/dist/vue3/lib/link.js.map +1 -1
  661. package/dist/vue3/lib/list-item-group.cjs +14 -7
  662. package/dist/vue3/lib/list-item-group.cjs.map +1 -1
  663. package/dist/vue3/lib/list-item-group.js +14 -7
  664. package/dist/vue3/lib/list-item-group.js.map +1 -1
  665. package/dist/vue3/lib/list-item.cjs +25 -24
  666. package/dist/vue3/lib/list-item.cjs.map +1 -1
  667. package/dist/vue3/lib/list-item.js +25 -24
  668. package/dist/vue3/lib/list-item.js.map +1 -1
  669. package/dist/vue3/lib/message-input.cjs +264 -227
  670. package/dist/vue3/lib/message-input.cjs.map +1 -1
  671. package/dist/vue3/lib/message-input.js +264 -227
  672. package/dist/vue3/lib/message-input.js.map +1 -1
  673. package/dist/vue3/lib/modal.cjs +99 -59
  674. package/dist/vue3/lib/modal.cjs.map +1 -1
  675. package/dist/vue3/lib/modal.js +99 -59
  676. package/dist/vue3/lib/modal.js.map +1 -1
  677. package/dist/vue3/lib/notice.cjs +46 -33
  678. package/dist/vue3/lib/notice.cjs.map +1 -1
  679. package/dist/vue3/lib/notice.js +46 -33
  680. package/dist/vue3/lib/notice.js.map +1 -1
  681. package/dist/vue3/lib/pagination.cjs +61 -49
  682. package/dist/vue3/lib/pagination.cjs.map +1 -1
  683. package/dist/vue3/lib/pagination.js +61 -49
  684. package/dist/vue3/lib/pagination.js.map +1 -1
  685. package/dist/vue3/lib/popover.cjs +156 -133
  686. package/dist/vue3/lib/popover.cjs.map +1 -1
  687. package/dist/vue3/lib/popover.js +157 -134
  688. package/dist/vue3/lib/popover.js.map +1 -1
  689. package/dist/vue3/lib/presence.cjs +17 -9
  690. package/dist/vue3/lib/presence.cjs.map +1 -1
  691. package/dist/vue3/lib/presence.js +17 -9
  692. package/dist/vue3/lib/presence.js.map +1 -1
  693. package/dist/vue3/lib/radio-group.cjs +1 -1
  694. package/dist/vue3/lib/radio-group.cjs.map +1 -1
  695. package/dist/vue3/lib/radio-group.js +1 -1
  696. package/dist/vue3/lib/radio-group.js.map +1 -1
  697. package/dist/vue3/lib/radio.cjs +41 -34
  698. package/dist/vue3/lib/radio.cjs.map +1 -1
  699. package/dist/vue3/lib/radio.js +41 -34
  700. package/dist/vue3/lib/radio.js.map +1 -1
  701. package/dist/vue3/lib/rich-text-editor.cjs +288 -292
  702. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -1
  703. package/dist/vue3/lib/rich-text-editor.js +288 -292
  704. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  705. package/dist/vue3/lib/root-layout.cjs +39 -24
  706. package/dist/vue3/lib/root-layout.cjs.map +1 -1
  707. package/dist/vue3/lib/root-layout.js +39 -24
  708. package/dist/vue3/lib/root-layout.js.map +1 -1
  709. package/dist/vue3/lib/scrollbar-directive.cjs +422 -388
  710. package/dist/vue3/lib/scrollbar-directive.cjs.map +1 -1
  711. package/dist/vue3/lib/scrollbar-directive.js +422 -388
  712. package/dist/vue3/lib/scrollbar-directive.js.map +1 -1
  713. package/dist/vue3/lib/scroller.cjs +83 -100
  714. package/dist/vue3/lib/scroller.cjs.map +1 -1
  715. package/dist/vue3/lib/scroller.js +83 -100
  716. package/dist/vue3/lib/scroller.js.map +1 -1
  717. package/dist/vue3/lib/select-menu.cjs +67 -40
  718. package/dist/vue3/lib/select-menu.cjs.map +1 -1
  719. package/dist/vue3/lib/select-menu.js +67 -40
  720. package/dist/vue3/lib/select-menu.js.map +1 -1
  721. package/dist/vue3/lib/settings-menu-button.cjs +16 -10
  722. package/dist/vue3/lib/settings-menu-button.cjs.map +1 -1
  723. package/dist/vue3/lib/settings-menu-button.js +16 -10
  724. package/dist/vue3/lib/settings-menu-button.js.map +1 -1
  725. package/dist/vue3/lib/skeleton.cjs +93 -74
  726. package/dist/vue3/lib/skeleton.cjs.map +1 -1
  727. package/dist/vue3/lib/skeleton.js +93 -74
  728. package/dist/vue3/lib/skeleton.js.map +1 -1
  729. package/dist/vue3/lib/split-button.cjs +74 -68
  730. package/dist/vue3/lib/split-button.cjs.map +1 -1
  731. package/dist/vue3/lib/split-button.js +74 -68
  732. package/dist/vue3/lib/split-button.js.map +1 -1
  733. package/dist/vue3/lib/stack.cjs +26 -18
  734. package/dist/vue3/lib/stack.cjs.map +1 -1
  735. package/dist/vue3/lib/stack.js +26 -18
  736. package/dist/vue3/lib/stack.js.map +1 -1
  737. package/dist/vue3/lib/tabs.cjs +7 -3
  738. package/dist/vue3/lib/tabs.cjs.map +1 -1
  739. package/dist/vue3/lib/tabs.js +7 -3
  740. package/dist/vue3/lib/tabs.js.map +1 -1
  741. package/dist/vue3/lib/time-pill.cjs.map +1 -1
  742. package/dist/vue3/lib/time-pill.js.map +1 -1
  743. package/dist/vue3/lib/toast.cjs +51 -35
  744. package/dist/vue3/lib/toast.cjs.map +1 -1
  745. package/dist/vue3/lib/toast.js +51 -35
  746. package/dist/vue3/lib/toast.js.map +1 -1
  747. package/dist/vue3/lib/toggle.cjs +34 -24
  748. package/dist/vue3/lib/toggle.cjs.map +1 -1
  749. package/dist/vue3/lib/toggle.js +34 -24
  750. package/dist/vue3/lib/toggle.js.map +1 -1
  751. package/dist/vue3/lib/tooltip-directive.cjs +19 -26
  752. package/dist/vue3/lib/tooltip-directive.cjs.map +1 -1
  753. package/dist/vue3/lib/tooltip-directive.js +19 -26
  754. package/dist/vue3/lib/tooltip-directive.js.map +1 -1
  755. package/dist/vue3/lib/tooltip.cjs +32 -21
  756. package/dist/vue3/lib/tooltip.cjs.map +1 -1
  757. package/dist/vue3/lib/tooltip.js +33 -22
  758. package/dist/vue3/lib/tooltip.js.map +1 -1
  759. package/dist/vue3/lib/top-banner-info.cjs +23 -8
  760. package/dist/vue3/lib/top-banner-info.cjs.map +1 -1
  761. package/dist/vue3/lib/top-banner-info.js +23 -8
  762. package/dist/vue3/lib/top-banner-info.js.map +1 -1
  763. package/dist/vue3/lib/unread-pill.cjs +11 -8
  764. package/dist/vue3/lib/unread-pill.cjs.map +1 -1
  765. package/dist/vue3/lib/unread-pill.js +11 -8
  766. package/dist/vue3/lib/unread-pill.js.map +1 -1
  767. package/dist/vue3/lib/validation-messages.cjs +17 -14
  768. package/dist/vue3/lib/validation-messages.cjs.map +1 -1
  769. package/dist/vue3/lib/validation-messages.js +17 -14
  770. package/dist/vue3/lib/validation-messages.js.map +1 -1
  771. package/dist/vue3/style.css +9 -9
  772. package/dist/vue3/types/components/button/button.vue.d.ts +1 -1
  773. package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
  774. package/dist/vue3/types/components/combobox/combobox.vue.d.ts +1 -1
  775. package/dist/vue3/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
  776. package/dist/vue3/types/components/icon/icon.vue.d.ts +2 -2
  777. package/dist/vue3/types/components/icon/icon_constants.d.ts +1 -1
  778. package/dist/vue3/types/components/icon/icon_constants.d.ts.map +1 -1
  779. package/dist/vue3/types/components/illustration/illustration_constants.d.ts +1 -1
  780. package/dist/vue3/types/components/illustration/illustration_constants.d.ts.map +1 -1
  781. package/dist/vue3/types/components/input/input.vue.d.ts +3 -2
  782. package/dist/vue3/types/components/input/input.vue.d.ts.map +1 -1
  783. package/dist/vue3/types/components/modal/modal.vue.d.ts +1 -1
  784. package/dist/vue3/types/components/notice/notice.vue.d.ts +1 -1
  785. package/dist/vue3/types/components/radio/radio.vue.d.ts +1 -1
  786. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
  787. package/dist/vue3/types/components/scroller/modules/scroller_item.vue.d.ts +1 -1
  788. package/dist/vue3/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
  789. package/dist/vue3/types/components/tabs/tab.vue.d.ts +1 -1
  790. package/dist/vue3/types/components/toast/toast.vue.d.ts +2 -2
  791. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +1 -1
  792. package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
  793. package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
  794. package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  795. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +15 -0
  796. package/dist/vue3/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  797. package/package.json +3 -2
  798. package/dist/vue2/chunks/icon_constants-TdxqLsS2.js.map +0 -1
  799. package/dist/vue2/chunks/icon_constants-VEA0wI5C.js.map +0 -1
  800. package/dist/vue3/chunks/icon_constants-bvhFNOPu.js.map +0 -1
  801. package/dist/vue3/chunks/icon_constants-gIQj4mf7.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-multi-select.js","sources":["../../recipes/comboboxes/combobox_multi_select/combobox_multi_select_constants.js","../../recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n","<template>\n <dt-recipe-combobox-with-popover\n ref=\"comboboxWithPopover\"\n :label=\"label\"\n :show-list=\"showList\"\n :max-height=\"listMaxHeight\"\n :max-width=\"listMaxWidth\"\n :popover-offset=\"popoverOffset\"\n :has-suggestion-list=\"hasSuggestionList\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n content-width=\"anchor\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @select=\"onComboboxSelect\"\n @highlight=\"comboboxHighlight\"\n >\n <template #input=\"{ onInput }\">\n <span\n ref=\"inputSlotWrapper\"\n class=\"combobox__input-wrapper\"\n @focusin=\"handleInputFocusIn\"\n @focusout=\"handleInputFocusOut\"\n >\n <span\n ref=\"chipsWrapper\"\n :class=\"['combobox__chip-wrapper', chipWrapperClass]\"\n >\n <dt-chip\n v-for=\"item in selectedItems\"\n ref=\"chips\"\n :key=\"item\"\n :label-class=\"['d-chip__label']\"\n class=\"combobox__chip\"\n :close-button-props=\"{ ariaLabel: 'close' }\"\n :size=\"CHIP_SIZES[size]\"\n v-on=\"chipListeners\"\n @keyup.backspace=\"onChipRemove(item)\"\n @close=\"onChipRemove(item)\"\n >\n {{ item }}\n </dt-chip>\n </span>\n\n <dt-input\n ref=\"input\"\n v-model=\"value\"\n class=\"combobox__input\"\n :aria-label=\"label\"\n :label=\"labelVisible ? label : ''\"\n :description=\"description\"\n :placeholder=\"inputPlaceHolder\"\n :show-messages=\"showInputMessages\"\n :messages=\"inputMessages\"\n :size=\"size\"\n v-on=\"inputListeners\"\n @input=\"onInput\"\n />\n\n <dt-validation-messages\n :validation-messages=\"maxSelectedMessage\"\n :show-messages=\"showValidationMessages\"\n />\n </span>\n </template>\n\n <!-- @slot slot for popover header -->\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #header\n >\n <div ref=\"header\">\n <slot name=\"header\" />\n </div>\n </template>\n\n <!-- @slot slot for popover list -->\n <template #list>\n <div\n ref=\"list\"\n @mousedown.prevent\n >\n <slot\n v-if=\"!loading\"\n name=\"list\"\n />\n <div\n v-else\n class=\"combobox__list--loading\"\n >\n {{ loadingMessage }}\n </div>\n </div>\n </template>\n\n <!-- @slot slot for popover footer -->\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footer\n >\n <div ref=\"footer\">\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-recipe-combobox-with-popover>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport DtRecipeComboboxWithPopover from '@/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue';\nimport DtInput from '@/components/input/input.vue';\nimport DtChip from '@/components/chip/chip.vue';\nimport DtValidationMessages from '@/components/validation_messages/validation_messages.vue';\nimport { validationMessageValidator } from '@/common/validators';\nimport { hasSlotContent } from '@/common/utils';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '@/components/popover/popover_constants';\nimport {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n} from './combobox_multi_select_constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxMultiSelect',\n\n components: {\n DtRecipeComboboxWithPopover,\n DtInput,\n DtChip,\n DtValidationMessages,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Input placeholder\n */\n placeholder: {\n type: String,\n default: 'Select one or start typing',\n },\n\n /**\n * Input validation messages\n */\n inputMessages: {\n type: Array,\n default: () => [],\n validator: inputMessages => {\n return validationMessageValidator(inputMessages);\n },\n },\n\n /**\n * Show input validation message\n */\n showInputMessages: {\n type: Boolean,\n default: true,\n },\n\n // @TODO: https://dialpad.atlassian.net/browse/DP-52324\n // type: {\n // type: String,\n // values: ['input', 'select'],\n // default: 'select',\n // },\n\n /**\n * Determines if the list is loading\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The message when the list is loading\n */\n loadingMessage: {\n type: String,\n default: 'loading...',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxHeight: {\n type: String,\n default: '300px',\n },\n\n /**\n * The selected items\n */\n selectedItems: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Would be the maximum number of selections you can make. 0 is unlimited\n */\n maxSelected: {\n type: Number,\n default: 0,\n },\n\n /**\n * Max select message when the max selections is exceeded with the structure:\n * `[{\"message\": string, \"type\": VALIDATION_MESSAGE_TYPES }]`\n */\n maxSelectedMessage: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the chip, one of `xs`, `sm`, `md`\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(MULTI_SELECT_SIZES).includes(t),\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n\n /**\n * Determines whether the combobox should collapse to a single when losing focus.\n * @type {boolean}\n */\n collapseOnFocusOut: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxWidth: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String }\n */\n 'input',\n\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when item removed\n *\n * @event remove\n * @type {String}\n */\n 'remove',\n\n /**\n * Event fired when max selected items limit is reached\n *\n * @event max-selected\n * @type {Object}\n */\n 'max-selected',\n\n /**\n * Native keyup event\n *\n * @event keyup\n * @type {KeyboardEvent}\n */\n 'keyup',\n\n /**\n * Event fired when combobox item is highlighted\n *\n * @event combobox-highlight\n * @type {Object}\n */\n 'combobox-highlight',\n ],\n\n data () {\n return {\n value: '',\n popoverOffset: [0, 4],\n showValidationMessages: false,\n resizeWindowObserver: null,\n initialInputHeight: null,\n CHIP_SIZES,\n hasSlotContent,\n inputFocused: false,\n };\n },\n\n computed: {\n inputPlaceHolder () {\n return this.selectedItems?.length > 0 ? '' : this.placeholder;\n },\n\n chipListeners () {\n return {\n keyup: event => {\n this.onChipKeyup(event);\n this.$emit('keyup', event);\n },\n };\n },\n\n inputListeners () {\n return {\n input: event => {\n this.$emit('input', event);\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n\n keyup: event => {\n this.onInputKeyup(event);\n this.$emit('keyup', event);\n },\n\n click: event => {\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n };\n },\n\n chipWrapperClass () {\n return {\n [`combobox__chip-wrapper-${this.size}--collapsed`]: !this.inputFocused && this.collapseOnFocusOut,\n };\n },\n },\n\n watch: {\n selectedItems: {\n deep: true,\n handler: async function () {\n this.initSelectedItems();\n },\n },\n\n async label () {\n await this.$nextTick();\n // Adjust the chips position if label changed\n this.setChipsTopPosition();\n },\n\n async description () {\n await this.$nextTick();\n // Adjust the chips position if description changed\n this.setChipsTopPosition();\n },\n\n size: {\n async handler () {\n await this.$nextTick();\n const input = this.getInput();\n this.revertInputPadding(input);\n this.initialInputHeight = input.getBoundingClientRect().height;\n this.setInputPadding();\n this.setChipsTopPosition();\n },\n },\n },\n\n mounted () {\n this.setInitialInputHeight();\n // Recalculate chip position and input padding when resizing window\n this.resizeWindowObserver = new ResizeObserver(async () => {\n this.setChipsTopPosition();\n this.setInputPadding();\n });\n this.resizeWindowObserver.observe(document.body);\n\n this.initSelectedItems();\n },\n\n beforeUnmount () {\n this.resizeWindowObserver?.unobserve(document.body);\n },\n\n methods: {\n comboboxHighlight (highlightIndex) {\n this.$emit('combobox-highlight', highlightIndex);\n },\n\n async initSelectedItems () {\n await this.$nextTick();\n this.setInputPadding();\n this.setChipsTopPosition();\n this.setInputMinWidth();\n this.checkMaxSelected();\n },\n\n onChipRemove (item) {\n this.$emit('remove', item);\n this.$refs.input?.focus();\n },\n\n onComboboxSelect (i) {\n this.value = '';\n this.$emit('select', i);\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.showComboboxList();\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.closeComboboxList();\n },\n\n getChipButtons () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));\n },\n\n getChips () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);\n },\n\n getLastChipButton () {\n return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];\n },\n\n getLastChip () {\n return this.$refs.chips && this.getChips()[this.getChips().length - 1];\n },\n\n getFirstChip () {\n return this.$refs.chips && this.getChips()[0];\n },\n\n getInput () {\n return this.$refs.input?.$refs.input;\n },\n\n onChipKeyup (event) {\n const key = event.code?.toLowerCase();\n if (key === 'arrowleft') {\n // Move to the previous chip\n this.navigateBetweenChips(event.target, true);\n } else if (key === 'arrowright') {\n if (event.target.id === this.getLastChipButton().id) {\n // Move to the input if it's the last chip\n this.moveFromChipToInput();\n } else {\n // Move to the next chip\n this.navigateBetweenChips(event.target, false);\n }\n }\n },\n\n onInputKeyup (event) {\n const key = event.code?.toLowerCase();\n // If the cursor is at the start of the text,\n // press 'backspace' or 'left' focuses the last chip\n if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {\n if (key === 'backspace' || key === 'arrowleft') {\n this.moveFromInputToChip();\n }\n }\n },\n\n moveFromInputToChip () {\n this.getLastChipButton().focus();\n this.$refs.input?.blur();\n this.closeComboboxList();\n },\n\n moveFromChipToInput () {\n this.getLastChipButton().blur();\n this.$refs.input?.focus();\n this.showComboboxList();\n },\n\n navigateBetweenChips (target, toLeft) {\n const from = this.getChipButtons().indexOf(target);\n const to = toLeft ? from - 1 : from + 1;\n if (to < 0 || to >= this.$refs.chips?.length) {\n return;\n }\n this.getChipButtons()[from].blur();\n this.getChipButtons()[to].focus();\n this.closeComboboxList();\n },\n\n setChipsTopPosition () {\n // To place the chips in the input box\n // The chip \"top\" position should be the same line as the input box\n const input = this.getInput();\n if (!input) return;\n const inputSlotWrapper = this.$refs.inputSlotWrapper;\n const top = input.getBoundingClientRect().top -\n inputSlotWrapper.getBoundingClientRect().top;\n const chipsWrapper = this.$refs.chipsWrapper;\n chipsWrapper.style.top = (top - CHIP_TOP_POSITION[this.size]) + 'px';\n },\n\n setInputPadding () {\n const lastChip = this.getLastChip();\n const input = this.getInput();\n const chipsWrapper = this.$refs.chipsWrapper;\n if (!input) return;\n this.revertInputPadding(input);\n this.popoverOffset = [0, 4];\n if (!lastChip) return;\n // Avoid adding extra padding when the input is not focused if collapseOnFocusOut is true\n // This ensures the input returns to its original state when resizing\n if (this.collapseOnFocusOut && !this.inputFocused) return;\n\n // Get the position of the last chip\n // The input cursor should be the same \"top\" as that chip and next besides it\n const left = lastChip.offsetLeft + this.getFullWidth(lastChip);\n input.style.paddingLeft = left + 'px';\n\n // Get the chip size minus the 4px padding\n const chipsSize = chipsWrapper.getBoundingClientRect().height - 4;\n\n // Get lastChip offsetTop plus 2px of the input padding.\n const top = lastChip.offsetTop + 2;\n\n // Add padding to Top only if the chips need more space\n if (chipsSize > this.initialInputHeight) {\n input.style.paddingTop = `${top}px`;\n }\n },\n\n revertInputPadding (input) {\n input.style.paddingLeft = '';\n input.style.paddingTop = '';\n input.style.paddingBottom = '';\n },\n\n getFullWidth (el) {\n const styles = window.getComputedStyle(el);\n return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);\n },\n\n setInputMinWidth () {\n // Ensure the width of the input is \"slightly bigger\" than the width of a single chip\n const firstChip = this.getFirstChip();\n const input = this.getInput();\n if (!input) return;\n if (firstChip) {\n // Add 4px buffer for typing room\n input.style.minWidth = (this.getFullWidth(firstChip) + 4) + 'px';\n } else {\n input.style.minWidth = '';\n }\n },\n\n checkMaxSelected () {\n if (this.maxSelected === 0) return;\n if (this.selectedItems.length > this.maxSelected) {\n this.showValidationMessages = true;\n this.$emit('max-selected');\n } else {\n this.showValidationMessages = false;\n }\n },\n\n setInitialInputHeight () {\n const input = this.getInput();\n if (!input) return;\n this.initialInputHeight = input.getBoundingClientRect().height;\n },\n\n async handleInputFocusIn () {\n this.inputFocused = true;\n if (this.collapseOnFocusOut) {\n await this.$nextTick();\n this.setInputPadding();\n }\n },\n\n async handleInputFocusOut () {\n this.inputFocused = false;\n if (this.collapseOnFocusOut) {\n const input = this.getInput();\n if (!input) return;\n this.revertInputPadding(input);\n }\n },\n },\n};\n</script>\n\n<style scoped lang=\"less\">\n.combobox__input-wrapper {\n position: relative;\n display: block;\n}\n\n.combobox__chip-wrapper {\n position: absolute;\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n padding-left: var(--dt-space-100);\n max-width: calc(var(--dt-size-100-percent) - var(--dt-space-400));\n max-height: initial;\n overflow-y: visible;\n}\n\n.combobox__chip-wrapper-md--collapsed {\n max-height: 2.8rem;\n overflow-y: hidden;\n}\n\n.combobox__chip-wrapper-sm--collapsed,\n.combobox__chip-wrapper-xs--collapsed {\n max-height: 2.5rem;\n overflow-y: hidden;\n}\n\n.combobox__chip {\n margin-top: var(--dt-space-300);\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n z-index: var(--zi-base1);\n max-width: var(--dt-size-100-percent);\n}\n\n.combobox__input {\n flex-grow: 1;\n}\n\n.combobox__list--loading {\n text-align: center;\n padding-top: var(--dt-space-500);\n padding-bottom: var(--dt-space-500);\n}\n</style>\n"],"names":["MULTI_SELECT_SIZES","EXTRA_SMALL","SMALL","DEFAULT","CHIP_SIZES","xs","sm","md","CHIP_TOP_POSITION","_sfc_main","name","components","DtRecipeComboboxWithPopover","DtInput","DtChip","DtValidationMessages","mixins","SrOnlyCloseButtonMixin","props","label","type","String","required","labelVisible","Boolean","default","description","placeholder","inputMessages","Array","validator","validationMessageValidator","showInputMessages","loading","loadingMessage","showList","listMaxHeight","selectedItems","maxSelected","Number","maxSelectedMessage","hasSuggestionList","size","t","Object","values","includes","appendTo","HTMLElement","POPOVER_APPEND_TO_VALUES","transition","collapseOnFocusOut","listMaxWidth","emits","data","value","popoverOffset","showValidationMessages","resizeWindowObserver","initialInputHeight","hasSlotContent","inputFocused","computed","inputPlaceHolder","length","chipListeners","keyup","event","onChipKeyup","$emit","inputListeners","input","showComboboxList","onInputKeyup","click","chipWrapperClass","watch","deep","handler","initSelectedItems","$nextTick","setChipsTopPosition","getInput","revertInputPadding","getBoundingClientRect","height","setInputPadding","mounted","setInitialInputHeight","ResizeObserver","observe","document","body","beforeUnmount","unobserve","methods","comboboxHighlight","highlightIndex","setInputMinWidth","checkMaxSelected","onChipRemove","item","$refs","focus","onComboboxSelect","i","comboboxWithPopover","closeComboboxList","getChipButtons","chips","map","chip","$el","querySelector","getChips","getLastChipButton","getLastChip","getFirstChip","key","code","toLowerCase","navigateBetweenChips","target","id","moveFromChipToInput","selectionStart","moveFromInputToChip","blur","toLeft","from","indexOf","to","inputSlotWrapper","top","chipsWrapper","style","lastChip","left","offsetLeft","getFullWidth","paddingLeft","chipsSize","offsetTop","paddingTop","paddingBottom","el","styles","window","getComputedStyle","offsetWidth","parseInt","marginLeft","marginRight","firstChip","minWidth","handleInputFocusIn","handleInputFocusOut","_hoisted_1","ref","class","_hoisted_3","_createBlock","_component_dt_recipe_combobox_with_popover","$props","$data","_ctx","visuallyHiddenCloseLabel","visuallyHiddenClose","onSelect","$options","onHighlight","_withCtx","onInput","_createElementVNode","onFocusin","args","onFocusout","_createElementBlock","_Fragment","_renderList","_openBlock","_component_dt_chip","_mergeProps","ariaLabel","_toHandlers","onKeyup","_withKeys","$event","onClose","_createVNode","_component_dt_input","messages","_component_dt_validation_messages","list","onMousedown","_renderSlot","$slots","undefined","_hoisted_2","_toDisplayString","header","footer"],"mappings":"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"}
1
+ {"version":3,"file":"combobox-multi-select.js","sources":["../../recipes/comboboxes/combobox_multi_select/combobox_multi_select_constants.js","../../recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n","<template>\n <dt-recipe-combobox-with-popover\n ref=\"comboboxWithPopover\"\n :label=\"label\"\n :show-list=\"showList\"\n :max-height=\"listMaxHeight\"\n :max-width=\"listMaxWidth\"\n :popover-offset=\"popoverOffset\"\n :has-suggestion-list=\"hasSuggestionList\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n content-width=\"anchor\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @select=\"onComboboxSelect\"\n @highlight=\"comboboxHighlight\"\n >\n <template #input=\"{ onInput }\">\n <span\n ref=\"inputSlotWrapper\"\n class=\"combobox__input-wrapper\"\n @focusin=\"handleInputFocusIn\"\n @focusout=\"handleInputFocusOut\"\n >\n <span\n ref=\"chipsWrapper\"\n :class=\"['combobox__chip-wrapper', chipWrapperClass]\"\n >\n <dt-chip\n v-for=\"item in selectedItems\"\n ref=\"chips\"\n :key=\"item\"\n :label-class=\"['d-chip__label']\"\n class=\"combobox__chip\"\n :close-button-props=\"{ ariaLabel: 'close' }\"\n :size=\"CHIP_SIZES[size]\"\n v-on=\"chipListeners\"\n @keyup.backspace=\"onChipRemove(item)\"\n @close=\"onChipRemove(item)\"\n >\n {{ item }}\n </dt-chip>\n </span>\n\n <dt-input\n ref=\"input\"\n v-model=\"value\"\n class=\"combobox__input\"\n :aria-label=\"label\"\n :label=\"labelVisible ? label : ''\"\n :description=\"description\"\n :placeholder=\"inputPlaceHolder\"\n :show-messages=\"showInputMessages\"\n :messages=\"inputMessages\"\n :size=\"size\"\n v-on=\"inputListeners\"\n @input=\"onInput\"\n />\n\n <dt-validation-messages\n :validation-messages=\"maxSelectedMessage\"\n :show-messages=\"showValidationMessages\"\n />\n </span>\n </template>\n\n <!-- @slot slot for popover header -->\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #header\n >\n <div ref=\"header\">\n <slot name=\"header\" />\n </div>\n </template>\n\n <!-- @slot slot for popover list -->\n <template #list>\n <div\n ref=\"list\"\n @mousedown.prevent\n >\n <slot\n v-if=\"!loading\"\n name=\"list\"\n />\n <div\n v-else\n class=\"combobox__list--loading\"\n >\n {{ loadingMessage }}\n </div>\n </div>\n </template>\n\n <!-- @slot slot for popover footer -->\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footer\n >\n <div ref=\"footer\">\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-recipe-combobox-with-popover>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport DtRecipeComboboxWithPopover from '@/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue';\nimport DtInput from '@/components/input/input.vue';\nimport DtChip from '@/components/chip/chip.vue';\nimport DtValidationMessages from '@/components/validation_messages/validation_messages.vue';\nimport { validationMessageValidator } from '@/common/validators';\nimport { hasSlotContent } from '@/common/utils';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '@/components/popover/popover_constants';\nimport {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n} from './combobox_multi_select_constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxMultiSelect',\n\n components: {\n DtRecipeComboboxWithPopover,\n DtInput,\n DtChip,\n DtValidationMessages,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Input placeholder\n */\n placeholder: {\n type: String,\n default: 'Select one or start typing',\n },\n\n /**\n * Input validation messages\n */\n inputMessages: {\n type: Array,\n default: () => [],\n validator: inputMessages => {\n return validationMessageValidator(inputMessages);\n },\n },\n\n /**\n * Show input validation message\n */\n showInputMessages: {\n type: Boolean,\n default: true,\n },\n\n // @TODO: https://dialpad.atlassian.net/browse/DP-52324\n // type: {\n // type: String,\n // values: ['input', 'select'],\n // default: 'select',\n // },\n\n /**\n * Determines if the list is loading\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The message when the list is loading\n */\n loadingMessage: {\n type: String,\n default: 'loading...',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxHeight: {\n type: String,\n default: '300px',\n },\n\n /**\n * The selected items\n */\n selectedItems: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Would be the maximum number of selections you can make. 0 is unlimited\n */\n maxSelected: {\n type: Number,\n default: 0,\n },\n\n /**\n * Max select message when the max selections is exceeded with the structure:\n * `[{\"message\": string, \"type\": VALIDATION_MESSAGE_TYPES }]`\n */\n maxSelectedMessage: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the chip, one of `xs`, `sm`, `md`\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(MULTI_SELECT_SIZES).includes(t),\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n\n /**\n * Determines whether the combobox should collapse to a single when losing focus.\n * @type {boolean}\n */\n collapseOnFocusOut: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxWidth: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String }\n */\n 'input',\n\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when item removed\n *\n * @event remove\n * @type {String}\n */\n 'remove',\n\n /**\n * Event fired when max selected items limit is reached\n *\n * @event max-selected\n * @type {Object}\n */\n 'max-selected',\n\n /**\n * Native keyup event\n *\n * @event keyup\n * @type {KeyboardEvent}\n */\n 'keyup',\n\n /**\n * Event fired when combobox item is highlighted\n *\n * @event combobox-highlight\n * @type {Object}\n */\n 'combobox-highlight',\n ],\n\n data () {\n return {\n value: '',\n popoverOffset: [0, 4],\n showValidationMessages: false,\n resizeWindowObserver: null,\n initialInputHeight: null,\n CHIP_SIZES,\n hasSlotContent,\n inputFocused: false,\n };\n },\n\n computed: {\n inputPlaceHolder () {\n return this.selectedItems?.length > 0 ? '' : this.placeholder;\n },\n\n chipListeners () {\n return {\n keyup: event => {\n this.onChipKeyup(event);\n this.$emit('keyup', event);\n },\n };\n },\n\n inputListeners () {\n return {\n input: event => {\n this.$emit('input', event);\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n\n keyup: event => {\n this.onInputKeyup(event);\n this.$emit('keyup', event);\n },\n\n click: event => {\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n };\n },\n\n chipWrapperClass () {\n return {\n [`combobox__chip-wrapper-${this.size}--collapsed`]: !this.inputFocused && this.collapseOnFocusOut,\n };\n },\n },\n\n watch: {\n selectedItems: {\n deep: true,\n handler: async function () {\n this.initSelectedItems();\n },\n },\n\n async label () {\n await this.$nextTick();\n // Adjust the chips position if label changed\n this.setChipsTopPosition();\n },\n\n async description () {\n await this.$nextTick();\n // Adjust the chips position if description changed\n this.setChipsTopPosition();\n },\n\n size: {\n async handler () {\n await this.$nextTick();\n const input = this.getInput();\n this.revertInputPadding(input);\n this.initialInputHeight = input.getBoundingClientRect().height;\n this.setInputPadding();\n this.setChipsTopPosition();\n },\n },\n },\n\n mounted () {\n this.setInitialInputHeight();\n // Recalculate chip position and input padding when resizing window\n this.resizeWindowObserver = new ResizeObserver(async () => {\n this.setChipsTopPosition();\n this.setInputPadding();\n });\n this.resizeWindowObserver.observe(document.body);\n\n this.initSelectedItems();\n },\n\n beforeUnmount () {\n this.resizeWindowObserver?.unobserve(document.body);\n },\n\n methods: {\n comboboxHighlight (highlightIndex) {\n this.$emit('combobox-highlight', highlightIndex);\n },\n\n async initSelectedItems () {\n await this.$nextTick();\n this.setInputPadding();\n this.setChipsTopPosition();\n this.setInputMinWidth();\n this.checkMaxSelected();\n },\n\n onChipRemove (item) {\n this.$emit('remove', item);\n this.$refs.input?.focus();\n },\n\n onComboboxSelect (i) {\n this.value = '';\n this.$emit('select', i);\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.showComboboxList();\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.closeComboboxList();\n },\n\n getChipButtons () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));\n },\n\n getChips () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);\n },\n\n getLastChipButton () {\n return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];\n },\n\n getLastChip () {\n return this.$refs.chips && this.getChips()[this.getChips().length - 1];\n },\n\n getFirstChip () {\n return this.$refs.chips && this.getChips()[0];\n },\n\n getInput () {\n return this.$refs.input?.$refs.input;\n },\n\n onChipKeyup (event) {\n const key = event.code?.toLowerCase();\n if (key === 'arrowleft') {\n // Move to the previous chip\n this.navigateBetweenChips(event.target, true);\n } else if (key === 'arrowright') {\n if (event.target.id === this.getLastChipButton().id) {\n // Move to the input if it's the last chip\n this.moveFromChipToInput();\n } else {\n // Move to the next chip\n this.navigateBetweenChips(event.target, false);\n }\n }\n },\n\n onInputKeyup (event) {\n const key = event.code?.toLowerCase();\n // If the cursor is at the start of the text,\n // press 'backspace' or 'left' focuses the last chip\n if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {\n if (key === 'backspace' || key === 'arrowleft') {\n this.moveFromInputToChip();\n }\n }\n },\n\n moveFromInputToChip () {\n this.getLastChipButton().focus();\n this.$refs.input?.blur();\n this.closeComboboxList();\n },\n\n moveFromChipToInput () {\n this.getLastChipButton().blur();\n this.$refs.input?.focus();\n this.showComboboxList();\n },\n\n navigateBetweenChips (target, toLeft) {\n const from = this.getChipButtons().indexOf(target);\n const to = toLeft ? from - 1 : from + 1;\n if (to < 0 || to >= this.$refs.chips?.length) {\n return;\n }\n this.getChipButtons()[from].blur();\n this.getChipButtons()[to].focus();\n this.closeComboboxList();\n },\n\n setChipsTopPosition () {\n // To place the chips in the input box\n // The chip \"top\" position should be the same line as the input box\n const input = this.getInput();\n if (!input) return;\n const inputSlotWrapper = this.$refs.inputSlotWrapper;\n const top = input.getBoundingClientRect().top -\n inputSlotWrapper.getBoundingClientRect().top;\n const chipsWrapper = this.$refs.chipsWrapper;\n chipsWrapper.style.top = (top - CHIP_TOP_POSITION[this.size]) + 'px';\n },\n\n setInputPadding () {\n const lastChip = this.getLastChip();\n const input = this.getInput();\n const chipsWrapper = this.$refs.chipsWrapper;\n if (!input) return;\n this.revertInputPadding(input);\n this.popoverOffset = [0, 4];\n if (!lastChip) return;\n // Avoid adding extra padding when the input is not focused if collapseOnFocusOut is true\n // This ensures the input returns to its original state when resizing\n if (this.collapseOnFocusOut && !this.inputFocused) return;\n\n // Get the position of the last chip\n // The input cursor should be the same \"top\" as that chip and next besides it\n const left = lastChip.offsetLeft + this.getFullWidth(lastChip);\n input.style.paddingLeft = left + 'px';\n\n // Get the chip size minus the 4px padding\n const chipsSize = chipsWrapper.getBoundingClientRect().height - 4;\n\n // Get lastChip offsetTop plus 2px of the input padding.\n const top = lastChip.offsetTop + 2;\n\n // Add padding to Top only if the chips need more space\n if (chipsSize > this.initialInputHeight) {\n input.style.paddingTop = `${top}px`;\n }\n },\n\n revertInputPadding (input) {\n input.style.paddingLeft = '';\n input.style.paddingTop = '';\n input.style.paddingBottom = '';\n },\n\n getFullWidth (el) {\n const styles = window.getComputedStyle(el);\n return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);\n },\n\n setInputMinWidth () {\n // Ensure the width of the input is \"slightly bigger\" than the width of a single chip\n const firstChip = this.getFirstChip();\n const input = this.getInput();\n if (!input) return;\n if (firstChip) {\n // Add 4px buffer for typing room\n input.style.minWidth = (this.getFullWidth(firstChip) + 4) + 'px';\n } else {\n input.style.minWidth = '';\n }\n },\n\n checkMaxSelected () {\n if (this.maxSelected === 0) return;\n if (this.selectedItems.length > this.maxSelected) {\n this.showValidationMessages = true;\n this.$emit('max-selected');\n } else {\n this.showValidationMessages = false;\n }\n },\n\n setInitialInputHeight () {\n const input = this.getInput();\n if (!input) return;\n this.initialInputHeight = input.getBoundingClientRect().height;\n },\n\n async handleInputFocusIn () {\n this.inputFocused = true;\n if (this.collapseOnFocusOut) {\n await this.$nextTick();\n this.setInputPadding();\n }\n },\n\n async handleInputFocusOut () {\n this.inputFocused = false;\n if (this.collapseOnFocusOut) {\n const input = this.getInput();\n if (!input) return;\n this.revertInputPadding(input);\n }\n },\n },\n};\n</script>\n\n<style scoped lang=\"less\">\n.combobox__input-wrapper {\n position: relative;\n display: block;\n}\n\n.combobox__chip-wrapper {\n position: absolute;\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n padding-left: var(--dt-space-100);\n max-width: calc(var(--dt-size-100-percent) - var(--dt-space-400));\n max-height: initial;\n overflow-y: visible;\n}\n\n.combobox__chip-wrapper-md--collapsed {\n max-height: 2.8rem;\n overflow-y: hidden;\n}\n\n.combobox__chip-wrapper-sm--collapsed,\n.combobox__chip-wrapper-xs--collapsed {\n max-height: 2.5rem;\n overflow-y: hidden;\n}\n\n.combobox__chip {\n margin-top: var(--dt-space-300);\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n z-index: var(--zi-base1);\n max-width: var(--dt-size-100-percent);\n}\n\n.combobox__input {\n flex-grow: 1;\n}\n\n.combobox__list--loading {\n text-align: center;\n padding-top: var(--dt-space-500);\n padding-bottom: var(--dt-space-500);\n}\n</style>\n"],"names":["_createBlock","_withCtx","_createElementVNode","_createElementBlock","_Fragment","_renderList","_openBlock","_mergeProps","_toHandlers","_withKeys","_createVNode","_renderSlot","_toDisplayString"],"mappings":"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"}
@@ -1,26 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const lib_combobox = require("../chunks/index-ouh7Bvm-.js");
3
+ const lib_combobox = require("../chunks/index-4qgKeErp.js");
4
4
  const common_utils = require("../common/utils.cjs");
5
- const sr_only_close_button = require("../chunks/sr_only_close_button-gKr0Vlbz.js");
5
+ const sr_only_close_button = require("../chunks/sr_only_close_button-xGrHFjwA.js");
6
6
  const vue = require("vue");
7
7
  const _pluginVue_exportHelper = require("../chunks/_plugin-vue_export-helper-fhnQq0tA.js");
8
8
  const lib_popover = require("./popover.cjs");
9
9
  const dropdown_constants = require("../chunks/dropdown_constants-2pGCXy7m.js");
10
- const popover_constants = require("../chunks/popover_constants-h9MD6WUt.js");
11
- require("../chunks/keyboard_list_navigation-x3D6RcC7.js");
10
+ const popover_constants = require("../chunks/popover_constants-XnGWXaxX.js");
11
+ require("../chunks/keyboard_list_navigation-fJnl_Iox.js");
12
12
  require("./list-item.cjs");
13
13
  require("../chunks/list_item_constants-EiqkqZvP.js");
14
14
  require("./item-layout.cjs");
15
15
  require("../common/constants.cjs");
16
16
  require("./icon.cjs");
17
17
  require("@dialpad/dialtone-icons/vue3");
18
- require("../chunks/icon_constants-bvhFNOPu.js");
18
+ require("../chunks/icon_constants-QYpmdE0R.js");
19
19
  require("@dialpad/dialtone-icons/icons.json");
20
20
  require("./skeleton.cjs");
21
21
  require("./button.cjs");
22
22
  require("../chunks/link_constants-x8NwdqmA.js");
23
- require("../chunks/modal-OaWxzqNt.js");
23
+ require("../chunks/modal-VgxXAQFP.js");
24
24
  require("./lazy-show.cjs");
25
25
  require("tippy.js");
26
26
  const _sfc_main = {
@@ -344,13 +344,9 @@ const _sfc_main = {
344
344
  }
345
345
  };
346
346
  const _hoisted_1 = ["id"];
347
- const _hoisted_2 = {
348
- ref: "header"
349
- };
347
+ const _hoisted_2 = { ref: "header" };
350
348
  const _hoisted_3 = ["onMouseleave", "onFocusout"];
351
- const _hoisted_4 = {
352
- ref: "footer"
353
- };
349
+ const _hoisted_4 = { ref: "footer" };
354
350
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
355
351
  const _component_combobox_loading_list = vue.resolveComponent("combobox-loading-list");
356
352
  const _component_combobox_empty_list = vue.resolveComponent("combobox-empty-list");
@@ -372,71 +368,83 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
372
368
  "list-id": $props.listId,
373
369
  "data-qa": "dt-combobox"
374
370
  }, $options.comboboxListeners), {
375
- input: vue.withCtx(({
376
- inputProps
377
- }) => [vue.createElementVNode("div", {
378
- id: $data.externalAnchor,
379
- ref: "input",
380
- onFocusin: _cache[0] || (_cache[0] = (...args) => $options.onFocusIn && $options.onFocusIn(...args)),
381
- onKeydown: [_cache[1] || (_cache[1] = vue.withKeys(($event) => $options.openOnArrowKeyPress($event), ["up"])), _cache[2] || (_cache[2] = vue.withKeys(($event) => $options.openOnArrowKeyPress($event), ["down"]))]
382
- }, [vue.renderSlot(_ctx.$slots, "input", {
383
- inputProps,
384
- onInput: $options.handleDisplayList
385
- })], 40, _hoisted_1)]),
386
- list: vue.withCtx(({
387
- opened,
388
- listProps,
389
- clearHighlightIndex
390
- }) => [vue.createVNode(_component_dt_popover, {
391
- ref: "popover",
392
- open: $data.isListShown,
393
- "onUpdate:open": _cache[3] || (_cache[3] = ($event) => $data.isListShown = $event),
394
- "hide-on-click": false,
395
- "max-height": $props.maxHeight,
396
- "max-width": $props.maxWidth,
397
- offset: $props.popoverOffset,
398
- sticky: $props.popoverSticky,
399
- placement: "bottom-start",
400
- "initial-focus-element": "none",
401
- padding: "none",
402
- role: "listbox",
403
- "external-anchor": $data.externalAnchor,
404
- "content-width": $props.contentWidth,
405
- "content-appear": true,
406
- "content-tabindex": null,
407
- modal: false,
408
- "auto-focus": false,
409
- "append-to": $props.appendTo,
410
- transition: $props.transition,
411
- "visually-hidden-close-label": _ctx.visuallyHiddenCloseLabel,
412
- "visually-hidden-close": _ctx.visuallyHiddenClose,
413
- onOpened: opened
414
- }, vue.createSlots({
415
- content: vue.withCtx(() => [vue.createElementVNode("div", {
416
- ref: "listWrapper",
417
- class: vue.normalizeClass([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
418
- onMouseleave: clearHighlightIndex,
419
- onFocusout: clearHighlightIndex
420
- }, [$props.loading ? (vue.openBlock(), vue.createBlock(_component_combobox_loading_list, vue.normalizeProps(vue.mergeProps({
421
- key: 0
422
- }, listProps)), null, 16)) : $props.emptyList && $props.emptyStateMessage ? (vue.openBlock(), vue.createBlock(_component_combobox_empty_list, vue.mergeProps({
423
- key: 1
424
- }, listProps, {
425
- message: $props.emptyStateMessage
426
- }), null, 16, ["message"])) : vue.renderSlot(_ctx.$slots, "list", {
427
- key: 2,
428
- listProps
429
- })], 42, _hoisted_3)]),
430
- _: 2
431
- }, [$data.hasSlotContent(_ctx.$slots.header) ? {
432
- name: "headerContent",
433
- fn: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_2, [vue.renderSlot(_ctx.$slots, "header")], 512)]),
434
- key: "0"
435
- } : void 0, $data.hasSlotContent(_ctx.$slots.footer) ? {
436
- name: "footerContent",
437
- fn: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_4, [vue.renderSlot(_ctx.$slots, "footer")], 512)]),
438
- key: "1"
439
- } : void 0]), 1032, ["open", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "append-to", "transition", "visually-hidden-close-label", "visually-hidden-close", "onOpened"])]),
371
+ input: vue.withCtx(({ inputProps }) => [
372
+ vue.createElementVNode("div", {
373
+ id: $data.externalAnchor,
374
+ ref: "input",
375
+ onFocusin: _cache[0] || (_cache[0] = (...args) => $options.onFocusIn && $options.onFocusIn(...args)),
376
+ onKeydown: [
377
+ _cache[1] || (_cache[1] = vue.withKeys(($event) => $options.openOnArrowKeyPress($event), ["up"])),
378
+ _cache[2] || (_cache[2] = vue.withKeys(($event) => $options.openOnArrowKeyPress($event), ["down"]))
379
+ ]
380
+ }, [
381
+ vue.renderSlot(_ctx.$slots, "input", {
382
+ inputProps,
383
+ onInput: $options.handleDisplayList
384
+ })
385
+ ], 40, _hoisted_1)
386
+ ]),
387
+ list: vue.withCtx(({ opened, listProps, clearHighlightIndex }) => [
388
+ vue.createVNode(_component_dt_popover, {
389
+ ref: "popover",
390
+ open: $data.isListShown,
391
+ "onUpdate:open": _cache[3] || (_cache[3] = ($event) => $data.isListShown = $event),
392
+ "hide-on-click": false,
393
+ "max-height": $props.maxHeight,
394
+ "max-width": $props.maxWidth,
395
+ offset: $props.popoverOffset,
396
+ sticky: $props.popoverSticky,
397
+ placement: "bottom-start",
398
+ "initial-focus-element": "none",
399
+ padding: "none",
400
+ role: "listbox",
401
+ "external-anchor": $data.externalAnchor,
402
+ "content-width": $props.contentWidth,
403
+ "content-appear": true,
404
+ "content-tabindex": null,
405
+ modal: false,
406
+ "auto-focus": false,
407
+ "append-to": $props.appendTo,
408
+ transition: $props.transition,
409
+ "visually-hidden-close-label": _ctx.visuallyHiddenCloseLabel,
410
+ "visually-hidden-close": _ctx.visuallyHiddenClose,
411
+ onOpened: opened
412
+ }, vue.createSlots({
413
+ content: vue.withCtx(() => [
414
+ vue.createElementVNode("div", {
415
+ ref: "listWrapper",
416
+ class: vue.normalizeClass([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
417
+ onMouseleave: clearHighlightIndex,
418
+ onFocusout: clearHighlightIndex
419
+ }, [
420
+ $props.loading ? (vue.openBlock(), vue.createBlock(_component_combobox_loading_list, vue.normalizeProps(vue.mergeProps({ key: 0 }, listProps)), null, 16)) : $props.emptyList && $props.emptyStateMessage ? (vue.openBlock(), vue.createBlock(_component_combobox_empty_list, vue.mergeProps({ key: 1 }, listProps, { message: $props.emptyStateMessage }), null, 16, ["message"])) : vue.renderSlot(_ctx.$slots, "list", {
421
+ key: 2,
422
+ listProps
423
+ })
424
+ ], 42, _hoisted_3)
425
+ ]),
426
+ _: 2
427
+ }, [
428
+ $data.hasSlotContent(_ctx.$slots.header) ? {
429
+ name: "headerContent",
430
+ fn: vue.withCtx(() => [
431
+ vue.createElementVNode("div", _hoisted_2, [
432
+ vue.renderSlot(_ctx.$slots, "header")
433
+ ], 512)
434
+ ]),
435
+ key: "0"
436
+ } : void 0,
437
+ $data.hasSlotContent(_ctx.$slots.footer) ? {
438
+ name: "footerContent",
439
+ fn: vue.withCtx(() => [
440
+ vue.createElementVNode("div", _hoisted_4, [
441
+ vue.renderSlot(_ctx.$slots, "footer")
442
+ ], 512)
443
+ ]),
444
+ key: "1"
445
+ } : void 0
446
+ ]), 1032, ["open", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "append-to", "transition", "visually-hidden-close-label", "visually-hidden-close", "onOpened"])
447
+ ]),
440
448
  _: 3
441
449
  }, 16, ["loading", "label", "label-visible", "size", "description", "empty-list", "empty-state-message", "show-list", "on-beginning-of-list", "on-end-of-list", "list-id"]);
442
450
  }
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-with-popover.cjs","sources":["../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-bind=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n v-model:open=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[DROPDOWN_PADDING_CLASSES[padding], listClass]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","components","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","mixins","SrOnlyCloseButtonMixin","props","label","type","String","required","labelVisible","Boolean","default","size","validator","t","Object","values","LABEL_SIZES","includes","description","showList","listId","getUniqueString","listClass","Array","onBeginningOfList","Function","onEndOfList","maxHeight","maxWidth","padding","keys","DROPDOWN_PADDING_CLASSES","some","item","contentWidth","POPOVER_CONTENT_WIDTHS","openWithArrowKeys","popoverOffset","popoverSticky","hasSuggestionList","loading","emptyList","emptyStateMessage","appendTo","HTMLElement","POPOVER_APPEND_TO_VALUES","transition","emits","data","isListShown","isInputFocused","isListFocused","externalAnchor","hasSlotContent","computed","comboboxListeners","$attrs","onSelect","onEscape","onHighlight","watch","handler","show","immediate","val","window","addEventListener","onFocusOut","removeEventListener","onOpened","methods","handleDisplayList","value","showComboboxList","closeComboboxList","highlightIndex","$emit","opened","onFocusIn","e","$refs","input","querySelector","target","popoverEl","popover","tip","popper","comboboxEl","composedPath","el","openOnArrowKeyPress","_hoisted_2","ref","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","id","onFocusin","args","onKeydown","_cache","_withKeys","$event","_renderSlot","_ctx","$slots","onInput","list","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","open","offset","sticky","placement","role","modal","visuallyHiddenCloseLabel","visuallyHiddenClose","content","class","_normalizeClass","onMouseleave","onFocusout","_component_combobox_loading_list","_component_combobox_empty_list","key","message","header","footer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAyHA,MAAKA,YAAU;AAAA,EACbC,MAAM;AAAA,EAENC,YAAY;AAAA,gBACVC,aAAU;AAAA,eACVC,YAAS;AAAA,yBACTC,aAAmB;AAAA,IACnBC,mBAAAA,aAAAA;AAAAA,EACD;AAAA,EAEDC,QAAQ,CAACC,qBAAAA,sBAAsB;AAAA,EAE/BC,OAAO;AAAA;AAAA;AAAA;AAAA,IAILC,OAAO;AAAA,MACLC,MAAMC;AAAAA,MACNC,UAAU;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDC,cAAc;AAAA,MACZH,MAAMI;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDC,MAAM;AAAA,MACJN,MAAMC;AAAAA,MACNI,SAAS;AAAA,MACTE,WAAYC,OAAMC,OAAOC,OAAOC,aAAAA,WAAW,EAAEC,SAASJ,CAAC;AAAA,IACxD;AAAA;AAAA;AAAA;AAAA,IAKDK,aAAa;AAAA,MACXb,MAAMC;AAAAA,MACNI,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQDS,UAAU;AAAA,MACRd,MAAMI;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDU,QAAQ;AAAA,MACNf,MAAMC;AAAAA,MACNI,UAAW;AAAE,eAAOW,aAAe,gBAAA;AAAA,MAAI;AAAA,IACxC;AAAA;AAAA;AAAA;AAAA,IAKDC,WAAW;AAAA,MACTjB,MAAM,CAACC,QAAQiB,OAAOT,MAAM;AAAA,MAC5BJ,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKDc,mBAAmB;AAAA,MACjBnB,MAAMoB;AAAAA,MACNf,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKDgB,aAAa;AAAA,MACXrB,MAAMoB;AAAAA,MACNf,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDiB,WAAW;AAAA,MACTtB,MAAMC;AAAAA,MACNI,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDkB,UAAU;AAAA,MACRvB,MAAMC;AAAAA,MACNI,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKDmB,SAAS;AAAA,MACPxB,MAAMC;AAAAA,MACNI,SAAS;AAAA,MACTE,WAAYiB,aAAY;AACtB,eAAOf,OAAOgB,KAAKC,2CAAwB,EAAEC,KAAMC,UAASA,SAASJ,OAAO;AAAA,MAC9E;AAAA,IACD;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDK,cAAc;AAAA,MACZ7B,MAAMC;AAAAA,MACNI,SAAS;AAAA,MACTE,WAAWsB,kBAAgBC,yCAAuBlB,SAASiB,YAAY;AAAA,IACxE;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDE,mBAAmB;AAAA,MACjB/B,MAAMI;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD2B,eAAe;AAAA,MACbhC,MAAMkB;AAAAA,MACNb,SAASA,MAAM,CAAC,GAAG,CAAC;AAAA,IACrB;AAAA;AAAA;AAAA;AAAA,IAKD4B,eAAe;AAAA,MACbjC,MAAM,CAACI,SAASH,MAAM;AAAA,MACtBI,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD6B,mBAAmB;AAAA,MACjBlC,MAAMI;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD8B,SAAS;AAAA,MACPnC,MAAMI;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD+B,WAAW;AAAA,MACTpC,MAAMI;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKDgC,mBAAmB;AAAA,MACjBrC,MAAMC;AAAAA,MACNI,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAODiC,UAAU;AAAA,MACRtC,MAAM,CAACuC,aAAatC,MAAM;AAAA,MAC1BI,SAAS;AAAA,MACTE,WAAW+B,cAAY;AACrB,eAAOE,kBAAwB,yBAAC5B,SAAS0B,QAAQ,KAC5CA,oBAAoBC;AAAAA,MAC3B;AAAA,IACD;AAAA;AAAA;AAAA;AAAA;AAAA,IAMDE,YAAY;AAAA,MACVzC,MAAMC;AAAAA,MACNI,SAAS;AAAA,IACX;AAAA,EACD;AAAA,EAEDqC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA,EAAQ;AAAA,EAGVC,OAAQ;AACN,WAAO;AAAA,gCACLjB,mBAAwB;AAAA,MACxBkB,aAAa;AAAA,MACbC,gBAAgB;AAAA,MAChBC,eAAe;AAAA,MACfC,gBAAgB/B,aAAAA,gBAAiB;AAAA,MACjCgC,gBAAAA,aAAAA;AAAAA;EAEH;AAAA,EAEDC,UAAU;AAAA,IACRC,oBAAqB;AACnB,aAAO;AAAA,QACL,GAAG,KAAKC;AAAAA,QAERC,UAAU,KAAKA;AAAAA,QAEfC,UAAU,KAAKA;AAAAA,QAEfC,aAAa,KAAKA;AAAAA;IAEtB;AAAA,EACD;AAAA,EAEDC,OAAO;AAAA,IACLzC,UAAU;AAAA,MACR0C,SAAS,SAAUC,MAAM;AACvB,YAAIA,SAAS,MAAM;AACjB,eAAKb,cAAca;AAAAA,QACrB;AAAA,MACD;AAAA,MAEDC,WAAW;AAAA,IACZ;AAAA,IAEDd,YAAae,KAAK;AAChB,UAAIA,KAAK;AACPC,eAAOC,iBAAiB,aAAa,KAAKC,UAAU;AAAA,MACtD,OAAO;AACLF,eAAOG,oBAAoB,aAAa,KAAKD,UAAU;AAAA,MACzD;AACA,WAAKE,SAASL,GAAG;AAAA,IACnB;AAAA,EACD;AAAA,EAEDM,SAAS;AAAA,IACPC,kBAAmBC,OAAO;AACxB,UAAI,CAAC,KAAKjC,qBAAqBiC,OAAO;AAAE,aAAKC,iBAAgB;AAAA,MAAI;AACjE,UAAI,CAAC,KAAKlC,qBAAqB,CAACiC,OAAO;AAAE,aAAKE,kBAAiB;AAAA,MAAI;AAAA,IACpE;AAAA,IAEDD,mBAAoB;AAClB,UAAI,KAAKtD,YAAY,MAAM;AAAE;AAAA,MAAQ;AACrC,WAAK8B,cAAc;AAAA,IACpB;AAAA,IAEDyB,oBAAqB;AACnB,UAAI,KAAKvD,YAAY,MAAM;AAAE;AAAA,MAAQ;AACrC,WAAK8B,cAAc;AAAA,IACpB;AAAA,IAEDQ,SAAUkB,gBAAgB;AACxB,UAAI,KAAKnC;AAAS;AAElB,WAAKoC,MAAM,UAAUD,cAAc;AACnC,UAAI,CAAC,KAAKpC,mBAAmB;AAE3B,aAAKmC,kBAAiB;AAAA,MACxB;AAAA,IACD;AAAA,IAEDhB,WAAY;AACV,WAAKkB,MAAM,QAAQ;AACnB,WAAKF,kBAAiB;AAAA,IACvB;AAAA,IAEDf,YAAagB,gBAAgB;AAC3B,UAAI,KAAKnC;AAAS;AAElB,WAAKoC,MAAM,aAAaD,cAAc;AAAA,IACvC;AAAA,IAEDN,SAAUQ,QAAQ;AAChB,WAAKD,MAAM,UAAUC,MAAM;AAAA,IAC5B;AAAA,IAEDC,UAAWC,GAAG;;AACZ,UAAI,KAAKxC,qBAAqBwC,OAAK,UAAKC,MAAMC,UAAX,mBAAkBC,cAAc,cAAaH,EAAEI,QAAQ;AAGxF,aAAKV,iBAAgB;AAAA,MACvB;AAAA,IACD;AAAA,IAEDN,WAAYY,GAAG;;AAEb,YAAMK,aAAY,gBAAKJ,MAAMK,YAAX,mBAAoBC,QAApB,mBAAyBC;AAC3C,YAAMC,aAAa,KAAKR,MAAMC;AAE9B,WAAIF,OAAEU,mBAAFV,mBAAkB/C,KAAK0D,QAAM,CAACN,WAAWI,UAAU,EAAEvE,SAASyE,EAAE;AAAI;AAGxE,WAAKhB,kBAAiB;AAAA,IACvB;AAAA,IAEDiB,sBAAuB;AACrB,UAAI,KAAKxE,aAAa,QAAQ,KAAK8B,eAAe,CAAC,KAAKb,mBAAmB;AAAE;AAAA,MAAQ;AAErF,WAAKqC,iBAAgB;AAAA,IACvB;AAAA,EACF;AACF;;AA9ZY,MAAAmB,aAAA;AAAA,EAAAC,KAAI;AAAQ;;AAoCZ,MAAAC,aAAA;AAAA,EAAAD,KAAI;AAAQ;;;;;;AArGtB,SAAAE,cAAA,GAAAC,gBA4GcC,wBA5GdC,IAAAA,WA4Gc;AAAA,IA3GZL,KAAI;AAAA,IACHrD,SAAS2D,OAAO3D;AAAAA,IAChBpC,OAAO+F,OAAK/F;AAAAA,IACZ,iBAAe+F,OAAY3F;AAAAA,IAC3BG,MAAMwF,OAAIxF;AAAAA,IACVO,aAAaiF,OAAWjF;AAAAA,IACxB,cAAYiF,OAAS1D;AAAAA,IACrB,uBAAqB0D,OAAiBzD;AAAAA,IACtC,aAAW0D,MAAWnD;AAAAA,IACtB,wBAAsBkD,OAAiB3E;AAAAA,IACvC,kBAAgB2E,OAAWzE;AAAAA,IAC3B,yBAAuB;AAAA,IACvB,WAASyE,OAAM/E;AAAAA,IAChB,WAAQ;AAAA,KACAiF,SAAiB9C,iBAAA,GAAA;AAAA,IAGtB0B,OAAKqB,IAAA,QAGN,CAYM;AAAA,MAfIC;AAAAA,IAAU,MAAA,CAGpBC,IAYM,mBAAA,OAAA;AAAA,MAXHC,IAAIL,MAAchD;AAAAA,MACnByC,KAAI;AAAA,MACHa,kDAASL,SAASvB,aAAAuB,SAAAvB,UAAA,GAAA6B,IAAA;AAAA,MAClBC,WAAO,CAAKC,OAAA,CAAA,MAAAA,OAAA,CAAA,IAAAC,aAAAC,YAAAV,SAAAV,oBAAoBoB,MAAM,GAAA,CAAA,IAAA,CAAA,IACxBF,OAAA,CAAA,MAAAA,OAAA,CAAA,IAAAC,IAAAA,SAAAC,YAAAV,SAAAV,oBAAoBoB,MAAM,GAAA,CAAA,MAAA,CAAA,EAAA;AAAA,QAEzCC,IAIE,WAAAC,KAAAC,QAAA,SAAA;AAAA,MAFCX;AAAAA,MACAY,SAAUd,SAAiB9B;AAAAA;IAIvB6C,kBACT,CAsEa;AAAA,MAvEIvC;AAAAA,MAAQwC;AAAAA,MAAWC;AAAAA,IAAmB,MAAA,CACvDC,IAsEa,YAAAC,uBAAA;AAAA,MArEX3B,KAAI;AAAA,MACI4B,MAAMrB,MAAWnD;AAAAA,6DAAXmD,MAAWnD,cAAA8D;AAAAA,MACxB,iBAAe;AAAA,MACf,cAAYZ,OAASxE;AAAAA,MACrB,aAAWwE,OAAQvE;AAAAA,MACnB8F,QAAQvB,OAAa9D;AAAAA,MACrBsF,QAAQxB,OAAa7D;AAAAA,MACtBsF,WAAU;AAAA,MACV,yBAAsB;AAAA,MACtB/F,SAAQ;AAAA,MACRgG,MAAK;AAAA,MACJ,mBAAiBzB,MAAchD;AAAAA,MAC/B,iBAAe+C,OAAYjE;AAAAA,MAC3B,kBAAgB;AAAA,MAChB,oBAAkB;AAAA,MAClB4F,OAAO;AAAA,MACP,cAAY;AAAA,MACZ,aAAW3B,OAAQxD;AAAAA,MACnBG,YAAYqD,OAAUrD;AAAAA,MACtB,+BAA6BmE,KAAwBc;AAAAA,MACrD,yBAAuBd,KAAmBe;AAAAA,MAC1C3D,UAAQQ;AAAAA;MAaEoD,qBAET,MAoBM,CApBNzB,IAAAA,mBAoBM,OAAA;AAAA,QAnBJX,KAAI;AAAA,QACHqC,OAAQC,IAAAA,eAAA,CAAA/B,MAAArE,yBAAyBoE,OAAAtE,OAAO,GAAGsE,OAAS7E,SAAA,CAAA;AAAA,QACpD8G,cAAYd;AAAAA,QACZe,YAAUf;AAAAA,UAGHnB,OAAO3D,WADfuD,IAAA,UAAA,GAAAC,IAAAA,YAGEsC;;SADQjB,SAAS,CAAA,GAAA,MAAA,EAAA,KAGNlB,OAAA1D,aAAa0D,OAAiBzD,qBAD3CqD,IAAA,UAAA,GAAAC,IAAAA,YAIEuC,gCAJFrC,IAAAA,WAIE;AAAA,QAAAsC,KAAA;AAAA,MAAA,GAFQnB,WACP;AAAA,QAAAoB,SAAStC,OAAiBzD;AAAAA,MAAA,CAAA,GAAA,MAAA,IAAA,CAAA,SAAA,CAAA,KAE7BsE,eAIEC,KAAAC,QAAA,QAAA;AAAA;QADCG;AAAAA;;QA9BCjB,MAAc/C,eAAC4D,KAAMC,OAACwB,MAAM;YACjC;AAAA,sBAED,MAIM,CAJNlC,IAAAA,mBAIM,OAJNZ,YAIM,CADJoB,eAAsBC,KAAAC,QAAA,QAAA,CAAA;;gBA8BlBd,MAAc/C,eAAC4D,KAAMC,OAACyB,MAAM;YACjC;AAAA,sBAED,MAIM,CAJNnC,IAAAA,mBAIM,OAJNV,YAIM,CADJkB,eAAsBC,KAAAC,QAAA,QAAA,CAAA;;;;;;;;"}
1
+ {"version":3,"file":"combobox-with-popover.cjs","sources":["../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-bind=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n v-model:open=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[DROPDOWN_PADDING_CLASSES[padding], listClass]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","SrOnlyCloseButtonMixin","LABEL_SIZES","getUniqueString","DROPDOWN_PADDING_CLASSES","POPOVER_CONTENT_WIDTHS","POPOVER_APPEND_TO_VALUES","hasSlotContent","_openBlock","_createBlock","_mergeProps","_withCtx","_createElementVNode","_withKeys","_renderSlot","_createVNode","_normalizeClass"],"mappings":"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"}