@dialpad/dialtone-vue 3.120.0 → 3.120.2

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 (425) hide show
  1. package/dist/chunks/_plugin-vue_export-helper-caHeSgYY.js +11 -0
  2. package/dist/chunks/_plugin-vue_export-helper-caHeSgYY.js.map +1 -0
  3. package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js +10 -0
  4. package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js.map +1 -0
  5. package/dist/chunks/{dropdown-eWOvBvwq.js → dropdown-Hn-TeTvZ.js} +151 -104
  6. package/dist/chunks/{dropdown-UO3UJalk.js.map → dropdown-Hn-TeTvZ.js.map} +1 -1
  7. package/dist/chunks/dropdown-w8Do29L5.js +442 -0
  8. package/dist/chunks/{dropdown-eWOvBvwq.js.map → dropdown-w8Do29L5.js.map} +1 -1
  9. package/dist/chunks/dropdown_constants-2pGCXy7m.js +8 -0
  10. package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -0
  11. package/dist/chunks/dropdown_constants-w1MXGC3Z.js +9 -0
  12. package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -0
  13. package/dist/chunks/{icon_constants-OpYAAKwF.js → icon_constants-Dy4MEUJL.js} +7 -6
  14. package/dist/chunks/{icon_constants-2S_OSQ1t.js.map → icon_constants-Dy4MEUJL.js.map} +1 -1
  15. package/dist/chunks/icon_constants-QYpmdE0R.js +16 -0
  16. package/dist/chunks/{icon_constants-OpYAAKwF.js.map → icon_constants-QYpmdE0R.js.map} +1 -1
  17. package/dist/chunks/index-4qgKeErp.js +446 -0
  18. package/dist/chunks/{index-b4iXYvId.js.map → index-4qgKeErp.js.map} +1 -1
  19. package/dist/chunks/index-b_MgDylR.js +447 -0
  20. package/dist/chunks/{index-6tYeqbgP.js.map → index-b_MgDylR.js.map} +1 -1
  21. package/dist/chunks/{input-4UQWegUk.js → input-NmYDD5bn.js} +83 -60
  22. package/dist/chunks/{input-0Uksk4DP.js.map → input-NmYDD5bn.js.map} +1 -1
  23. package/dist/chunks/input-ttnte8zB.js +295 -0
  24. package/dist/chunks/{input-4UQWegUk.js.map → input-ttnte8zB.js.map} +1 -1
  25. package/dist/chunks/input_group-M-D25pOJ.js +152 -0
  26. package/dist/chunks/{input_group-bBKaq3Wi.js.map → input_group-M-D25pOJ.js.map} +1 -1
  27. package/dist/chunks/{input_group-bBKaq3Wi.js → input_group-jWnq2DJT.js} +27 -24
  28. package/dist/chunks/{input_group-AS760Cp7.js.map → input_group-jWnq2DJT.js.map} +1 -1
  29. package/dist/chunks/keyboard_list_navigation-ScXhrxya.js +284 -0
  30. package/dist/chunks/{keyboard_list_navigation-N74Bpdq7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  31. package/dist/chunks/keyboard_list_navigation-fJnl_Iox.js +283 -0
  32. package/dist/chunks/{keyboard_list_navigation-F0O8nht0.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  33. package/dist/chunks/link_constants-Huj7D_hm.js +22 -0
  34. package/dist/chunks/{link_constants-Kn6kP4i1.js.map → link_constants-Huj7D_hm.js.map} +1 -1
  35. package/dist/chunks/link_constants-nWVlXQBs.js +23 -0
  36. package/dist/chunks/{link_constants-vIUB92L4.js.map → link_constants-nWVlXQBs.js.map} +1 -1
  37. package/dist/chunks/list_item_constants-EiqkqZvP.js +13 -0
  38. package/dist/chunks/{list_item_constants-Tsz5CO1m.js.map → list_item_constants-EiqkqZvP.js.map} +1 -1
  39. package/dist/chunks/list_item_constants-u1xcN9Dd.js +14 -0
  40. package/dist/chunks/{list_item_constants-LTUc74pD.js.map → list_item_constants-u1xcN9Dd.js.map} +1 -1
  41. package/dist/chunks/modal-VgxXAQFP.js +105 -0
  42. package/dist/chunks/{modal-qEzlo0Sj.js.map → modal-VgxXAQFP.js.map} +1 -1
  43. package/dist/chunks/modal-XOr4kiNZ.js +106 -0
  44. package/dist/chunks/{modal-VuMFkZFH.js.map → modal-XOr4kiNZ.js.map} +1 -1
  45. package/dist/chunks/notice_action-WTucGhvr.js +222 -0
  46. package/dist/chunks/{notice_action-tJfD5Qw1.js.map → notice_action-WTucGhvr.js.map} +1 -1
  47. package/dist/chunks/notice_action-p-ePanW_.js +223 -0
  48. package/dist/chunks/{notice_action-jO199emq.js.map → notice_action-p-ePanW_.js.map} +1 -1
  49. package/dist/chunks/notice_constants-7Qt2CQEY.js +7 -0
  50. package/dist/chunks/{notice_constants-mC6al2Dm.js.map → notice_constants-7Qt2CQEY.js.map} +1 -1
  51. package/dist/chunks/notice_constants-UXo9e3bS.js +6 -0
  52. package/dist/chunks/{notice_constants-c--hBFQw.js.map → notice_constants-UXo9e3bS.js.map} +1 -1
  53. package/dist/chunks/popover_constants-JwBF9h1Z.js +143 -0
  54. package/dist/chunks/{popover_constants-hOEhklvr.js.map → popover_constants-JwBF9h1Z.js.map} +1 -1
  55. package/dist/chunks/popover_constants-Qkpb0yh2.js +144 -0
  56. package/dist/chunks/{popover_constants-qjlEkroB.js.map → popover_constants-Qkpb0yh2.js.map} +1 -1
  57. package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js → sr_only_close_button-3EdsV-dH.js} +28 -24
  58. package/dist/chunks/{sr_only_close_button-iD7s1Pbj.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
  59. package/dist/chunks/sr_only_close_button-xGrHFjwA.js +91 -0
  60. package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js.map → sr_only_close_button-xGrHFjwA.js.map} +1 -1
  61. package/dist/chunks/stack_constants-HraCekPm.js +15 -0
  62. package/dist/chunks/{stack_constants-m9Ickqw0.js.map → stack_constants-HraCekPm.js.map} +1 -1
  63. package/dist/chunks/stack_constants-SMzMWnAQ.js +14 -0
  64. package/dist/chunks/{stack_constants-u7tNqGtc.js.map → stack_constants-SMzMWnAQ.js.map} +1 -1
  65. package/dist/chunks/tab-RTDgnD9-.js +391 -0
  66. package/dist/chunks/{tab-at7WWglk.js.map → tab-RTDgnD9-.js.map} +1 -1
  67. package/dist/chunks/tab-qc3f42Yp.js +390 -0
  68. package/dist/chunks/{tab-GQZFMq83.js.map → tab-qc3f42Yp.js.map} +1 -1
  69. package/dist/common/constants.cjs +60 -0
  70. package/dist/{lib → common}/constants.cjs.map +1 -1
  71. package/dist/{lib → common}/constants.js +25 -18
  72. package/dist/{lib → common}/constants.js.map +1 -1
  73. package/dist/common/dates.cjs +72 -0
  74. package/dist/{lib → common}/dates.cjs.map +1 -1
  75. package/dist/common/dates.js +72 -0
  76. package/dist/{lib → common}/dates.js.map +1 -1
  77. package/dist/common/emoji.cjs +163 -0
  78. package/dist/common/emoji.cjs.map +1 -0
  79. package/dist/common/emoji.js +168 -0
  80. package/dist/common/emoji.js.map +1 -0
  81. package/dist/common/mixins.cjs +17 -0
  82. package/dist/{lib → common}/mixins.cjs.map +1 -1
  83. package/dist/common/mixins.js +17 -0
  84. package/dist/common/utils.cjs +243 -0
  85. package/dist/{lib → common}/utils.cjs.map +1 -1
  86. package/dist/common/utils.js +243 -0
  87. package/dist/{lib → common}/utils.js.map +1 -1
  88. package/dist/common/validators.cjs +23 -0
  89. package/dist/{lib → common}/validators.cjs.map +1 -1
  90. package/dist/common/validators.js +23 -0
  91. package/dist/{lib → common}/validators.js.map +1 -1
  92. package/dist/dialtone-vue.cjs +373 -1
  93. package/dist/dialtone-vue.cjs.map +1 -1
  94. package/dist/dialtone-vue.js +328 -327
  95. package/dist/dialtone-vue.js.map +1 -1
  96. package/dist/lib/attachment-carousel.cjs +345 -1
  97. package/dist/lib/attachment-carousel.cjs.map +1 -1
  98. package/dist/lib/attachment-carousel.js +126 -108
  99. package/dist/lib/attachment-carousel.js.map +1 -1
  100. package/dist/lib/avatar.cjs +447 -1
  101. package/dist/lib/avatar.cjs.map +1 -1
  102. package/dist/lib/avatar.js +135 -101
  103. package/dist/lib/avatar.js.map +1 -1
  104. package/dist/lib/badge.cjs +206 -1
  105. package/dist/lib/badge.cjs.map +1 -1
  106. package/dist/lib/badge.js +64 -48
  107. package/dist/lib/badge.js.map +1 -1
  108. package/dist/lib/banner.cjs +242 -2
  109. package/dist/lib/banner.cjs.map +1 -1
  110. package/dist/lib/banner.js +81 -71
  111. package/dist/lib/banner.js.map +1 -1
  112. package/dist/lib/breadcrumbs.cjs +150 -1
  113. package/dist/lib/breadcrumbs.cjs.map +1 -1
  114. package/dist/lib/breadcrumbs.js +60 -52
  115. package/dist/lib/breadcrumbs.js.map +1 -1
  116. package/dist/lib/button-group.cjs +41 -1
  117. package/dist/lib/button-group.cjs.map +1 -1
  118. package/dist/lib/button-group.js +15 -14
  119. package/dist/lib/button-group.js.map +1 -1
  120. package/dist/lib/button.cjs +356 -1
  121. package/dist/lib/button.cjs.map +1 -1
  122. package/dist/lib/button.js +108 -88
  123. package/dist/lib/button.js.map +1 -1
  124. package/dist/lib/callbar-button-with-popover.cjs +322 -1
  125. package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
  126. package/dist/lib/callbar-button-with-popover.js +101 -83
  127. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  128. package/dist/lib/callbar-button.cjs +200 -1
  129. package/dist/lib/callbar-button.cjs.map +1 -1
  130. package/dist/lib/callbar-button.js +52 -45
  131. package/dist/lib/callbar-button.js.map +1 -1
  132. package/dist/lib/callbox.cjs +217 -1
  133. package/dist/lib/callbox.cjs.map +1 -1
  134. package/dist/lib/callbox.js +80 -67
  135. package/dist/lib/callbox.js.map +1 -1
  136. package/dist/lib/card.cjs +91 -1
  137. package/dist/lib/card.cjs.map +1 -1
  138. package/dist/lib/card.js +27 -27
  139. package/dist/lib/card.js.map +1 -1
  140. package/dist/lib/checkbox-group.cjs +115 -1
  141. package/dist/lib/checkbox-group.cjs.map +1 -1
  142. package/dist/lib/checkbox-group.js +34 -23
  143. package/dist/lib/checkbox-group.js.map +1 -1
  144. package/dist/lib/checkbox.cjs +156 -1
  145. package/dist/lib/checkbox.cjs.map +1 -1
  146. package/dist/lib/checkbox.js +72 -60
  147. package/dist/lib/checkbox.js.map +1 -1
  148. package/dist/lib/chip.cjs +235 -1
  149. package/dist/lib/chip.cjs.map +1 -1
  150. package/dist/lib/chip.js +84 -67
  151. package/dist/lib/chip.js.map +1 -1
  152. package/dist/lib/codeblock.cjs +23 -2
  153. package/dist/lib/codeblock.cjs.map +1 -1
  154. package/dist/lib/codeblock.js +13 -13
  155. package/dist/lib/codeblock.js.map +1 -1
  156. package/dist/lib/collapsible.cjs +398 -1
  157. package/dist/lib/collapsible.cjs.map +1 -1
  158. package/dist/lib/collapsible.js +123 -100
  159. package/dist/lib/collapsible.js.map +1 -1
  160. package/dist/lib/combobox-multi-select.cjs +589 -1
  161. package/dist/lib/combobox-multi-select.cjs.map +1 -1
  162. package/dist/lib/combobox-multi-select.js +270 -177
  163. package/dist/lib/combobox-multi-select.js.map +1 -1
  164. package/dist/lib/combobox-with-popover.cjs +452 -1
  165. package/dist/lib/combobox-with-popover.cjs.map +1 -1
  166. package/dist/lib/combobox-with-popover.js +172 -127
  167. package/dist/lib/combobox-with-popover.js.map +1 -1
  168. package/dist/lib/combobox.cjs +18 -1
  169. package/dist/lib/combobox.cjs.map +1 -1
  170. package/dist/lib/combobox.js +9 -9
  171. package/dist/lib/contact-info.cjs +205 -1
  172. package/dist/lib/contact-info.cjs.map +1 -1
  173. package/dist/lib/contact-info.js +69 -60
  174. package/dist/lib/contact-info.js.map +1 -1
  175. package/dist/lib/contact-row.cjs +246 -1
  176. package/dist/lib/contact-row.cjs.map +1 -1
  177. package/dist/lib/contact-row.js +67 -63
  178. package/dist/lib/contact-row.js.map +1 -1
  179. package/dist/lib/datepicker.cjs +854 -1
  180. package/dist/lib/datepicker.cjs.map +1 -1
  181. package/dist/lib/datepicker.js +585 -441
  182. package/dist/lib/datepicker.js.map +1 -1
  183. package/dist/lib/description-list.cjs +116 -1
  184. package/dist/lib/description-list.cjs.map +1 -1
  185. package/dist/lib/description-list.js +56 -24
  186. package/dist/lib/description-list.js.map +1 -1
  187. package/dist/lib/dropdown.cjs +36 -1
  188. package/dist/lib/dropdown.cjs.map +1 -1
  189. package/dist/lib/dropdown.js +22 -21
  190. package/dist/lib/dropdown.js.map +1 -1
  191. package/dist/lib/editor.cjs +711 -1
  192. package/dist/lib/editor.cjs.map +1 -1
  193. package/dist/lib/editor.js +271 -235
  194. package/dist/lib/editor.js.map +1 -1
  195. package/dist/lib/emoji-picker.cjs +1277 -1
  196. package/dist/lib/emoji-picker.cjs.map +1 -1
  197. package/dist/lib/emoji-picker.js +859 -569
  198. package/dist/lib/emoji-picker.js.map +1 -1
  199. package/dist/lib/emoji-row.cjs +128 -1
  200. package/dist/lib/emoji-row.cjs.map +1 -1
  201. package/dist/lib/emoji-row.js +89 -75
  202. package/dist/lib/emoji-row.js.map +1 -1
  203. package/dist/lib/emoji-text-wrapper.cjs +102 -1
  204. package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
  205. package/dist/lib/emoji-text-wrapper.js +42 -31
  206. package/dist/lib/emoji-text-wrapper.js.map +1 -1
  207. package/dist/lib/emoji.cjs +158 -1
  208. package/dist/lib/emoji.cjs.map +1 -1
  209. package/dist/lib/emoji.js +153 -6
  210. package/dist/lib/emoji.js.map +1 -1
  211. package/dist/lib/feed-item-row.cjs +296 -1
  212. package/dist/lib/feed-item-row.cjs.map +1 -1
  213. package/dist/lib/feed-item-row.js +119 -100
  214. package/dist/lib/feed-item-row.js.map +1 -1
  215. package/dist/lib/feed-pill.cjs +173 -1
  216. package/dist/lib/feed-pill.cjs.map +1 -1
  217. package/dist/lib/feed-pill.js +70 -57
  218. package/dist/lib/feed-pill.js.map +1 -1
  219. package/dist/lib/general-row.cjs +518 -1
  220. package/dist/lib/general-row.cjs.map +1 -1
  221. package/dist/lib/general-row.js +186 -148
  222. package/dist/lib/general-row.js.map +1 -1
  223. package/dist/lib/group-row.cjs +116 -1
  224. package/dist/lib/group-row.cjs.map +1 -1
  225. package/dist/lib/group-row.js +37 -35
  226. package/dist/lib/group-row.js.map +1 -1
  227. package/dist/lib/grouped-chip.cjs +96 -1
  228. package/dist/lib/grouped-chip.cjs.map +1 -1
  229. package/dist/lib/grouped-chip.js +51 -46
  230. package/dist/lib/grouped-chip.js.map +1 -1
  231. package/dist/lib/hovercard.cjs +223 -1
  232. package/dist/lib/hovercard.cjs.map +1 -1
  233. package/dist/lib/hovercard.js +115 -80
  234. package/dist/lib/hovercard.js.map +1 -1
  235. package/dist/lib/icon.cjs +58 -1
  236. package/dist/lib/icon.cjs.map +1 -1
  237. package/dist/lib/icon.js +20 -20
  238. package/dist/lib/icon.js.map +1 -1
  239. package/dist/lib/image-viewer.cjs +243 -1
  240. package/dist/lib/image-viewer.cjs.map +1 -1
  241. package/dist/lib/image-viewer.js +104 -80
  242. package/dist/lib/image-viewer.js.map +1 -1
  243. package/dist/lib/input-group.cjs +91 -1
  244. package/dist/lib/input-group.cjs.map +1 -1
  245. package/dist/lib/input-group.js +41 -39
  246. package/dist/lib/input-group.js.map +1 -1
  247. package/dist/lib/input.cjs +578 -1
  248. package/dist/lib/input.cjs.map +1 -1
  249. package/dist/lib/input.js +185 -137
  250. package/dist/lib/input.js.map +1 -1
  251. package/dist/lib/item-layout.cjs +91 -1
  252. package/dist/lib/item-layout.cjs.map +1 -1
  253. package/dist/lib/item-layout.js +45 -39
  254. package/dist/lib/item-layout.js.map +1 -1
  255. package/dist/lib/ivr-node.cjs +263 -1
  256. package/dist/lib/ivr-node.cjs.map +1 -1
  257. package/dist/lib/ivr-node.js +130 -112
  258. package/dist/lib/ivr-node.js.map +1 -1
  259. package/dist/lib/keyboard-shortcut.cjs +119 -1
  260. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  261. package/dist/lib/keyboard-shortcut.js +58 -48
  262. package/dist/lib/keyboard-shortcut.js.map +1 -1
  263. package/dist/lib/lazy-show.cjs +82 -1
  264. package/dist/lib/lazy-show.cjs.map +1 -1
  265. package/dist/lib/lazy-show.js +21 -19
  266. package/dist/lib/lazy-show.js.map +1 -1
  267. package/dist/lib/link.cjs +43 -1
  268. package/dist/lib/link.cjs.map +1 -1
  269. package/dist/lib/link.js +20 -19
  270. package/dist/lib/link.js.map +1 -1
  271. package/dist/lib/list-item-group.cjs +67 -1
  272. package/dist/lib/list-item-group.cjs.map +1 -1
  273. package/dist/lib/list-item-group.js +24 -22
  274. package/dist/lib/list-item-group.js.map +1 -1
  275. package/dist/lib/list-item.cjs +216 -1
  276. package/dist/lib/list-item.cjs.map +1 -1
  277. package/dist/lib/list-item.js +71 -60
  278. package/dist/lib/list-item.js.map +1 -1
  279. package/dist/lib/message-input.cjs +708 -1
  280. package/dist/lib/message-input.cjs.map +1 -1
  281. package/dist/lib/message-input.js +232 -206
  282. package/dist/lib/message-input.js.map +1 -1
  283. package/dist/lib/modal.cjs +444 -2
  284. package/dist/lib/modal.cjs.map +1 -1
  285. package/dist/lib/modal.js +153 -120
  286. package/dist/lib/modal.js.map +1 -1
  287. package/dist/lib/notice.cjs +197 -1
  288. package/dist/lib/notice.cjs.map +1 -1
  289. package/dist/lib/notice.js +66 -63
  290. package/dist/lib/notice.js.map +1 -1
  291. package/dist/lib/pagination.cjs +205 -1
  292. package/dist/lib/pagination.cjs.map +1 -1
  293. package/dist/lib/pagination.js +96 -81
  294. package/dist/lib/pagination.js.map +1 -1
  295. package/dist/lib/popover.cjs +1080 -1
  296. package/dist/lib/popover.cjs.map +1 -1
  297. package/dist/lib/popover.js +447 -267
  298. package/dist/lib/popover.js.map +1 -1
  299. package/dist/lib/presence.cjs +70 -1
  300. package/dist/lib/presence.cjs.map +1 -1
  301. package/dist/lib/presence.js +33 -27
  302. package/dist/lib/presence.js.map +1 -1
  303. package/dist/lib/radio-group.cjs +88 -1
  304. package/dist/lib/radio-group.cjs.map +1 -1
  305. package/dist/lib/radio-group.js +18 -18
  306. package/dist/lib/radio-group.js.map +1 -1
  307. package/dist/lib/radio.cjs +162 -1
  308. package/dist/lib/radio.cjs.map +1 -1
  309. package/dist/lib/radio.js +66 -57
  310. package/dist/lib/radio.js.map +1 -1
  311. package/dist/lib/rich-text-editor.cjs +1137 -1
  312. package/dist/lib/rich-text-editor.cjs.map +1 -1
  313. package/dist/lib/rich-text-editor.js +567 -386
  314. package/dist/lib/rich-text-editor.js.map +1 -1
  315. package/dist/lib/root-layout.cjs +158 -1
  316. package/dist/lib/root-layout.cjs.map +1 -1
  317. package/dist/lib/root-layout.js +33 -31
  318. package/dist/lib/root-layout.js.map +1 -1
  319. package/dist/lib/scroller.cjs +1090 -1
  320. package/dist/lib/scroller.cjs.map +1 -1
  321. package/dist/lib/scroller.js +668 -345
  322. package/dist/lib/scroller.js.map +1 -1
  323. package/dist/lib/select-menu.cjs +312 -1
  324. package/dist/lib/select-menu.cjs.map +1 -1
  325. package/dist/lib/select-menu.js +124 -79
  326. package/dist/lib/select-menu.js.map +1 -1
  327. package/dist/lib/settings-menu-button.cjs +77 -1
  328. package/dist/lib/settings-menu-button.cjs.map +1 -1
  329. package/dist/lib/settings-menu-button.js +31 -30
  330. package/dist/lib/settings-menu-button.js.map +1 -1
  331. package/dist/lib/skeleton.cjs +635 -1
  332. package/dist/lib/skeleton.cjs.map +1 -1
  333. package/dist/lib/skeleton.js +189 -152
  334. package/dist/lib/skeleton.js.map +1 -1
  335. package/dist/lib/stack.cjs +123 -1
  336. package/dist/lib/stack.cjs.map +1 -1
  337. package/dist/lib/stack.js +61 -53
  338. package/dist/lib/stack.js.map +1 -1
  339. package/dist/lib/tabs.cjs +102 -1
  340. package/dist/lib/tabs.cjs.map +1 -1
  341. package/dist/lib/tabs.js +47 -41
  342. package/dist/lib/tabs.js.map +1 -1
  343. package/dist/lib/time-pill.cjs +41 -1
  344. package/dist/lib/time-pill.cjs.map +1 -1
  345. package/dist/lib/time-pill.js +18 -14
  346. package/dist/lib/time-pill.js.map +1 -1
  347. package/dist/lib/toast.cjs +281 -1
  348. package/dist/lib/toast.cjs.map +1 -1
  349. package/dist/lib/toast.js +96 -74
  350. package/dist/lib/toast.js.map +1 -1
  351. package/dist/lib/toggle.cjs +192 -1
  352. package/dist/lib/toggle.cjs.map +1 -1
  353. package/dist/lib/toggle.js +60 -49
  354. package/dist/lib/toggle.js.map +1 -1
  355. package/dist/lib/tooltip-directive.cjs +84 -1
  356. package/dist/lib/tooltip-directive.cjs.map +1 -1
  357. package/dist/lib/tooltip-directive.js +56 -42
  358. package/dist/lib/tooltip-directive.js.map +1 -1
  359. package/dist/lib/tooltip.cjs +460 -1
  360. package/dist/lib/tooltip.cjs.map +1 -1
  361. package/dist/lib/tooltip.js +162 -103
  362. package/dist/lib/tooltip.js.map +1 -1
  363. package/dist/lib/top-banner-info.cjs +71 -1
  364. package/dist/lib/top-banner-info.cjs.map +1 -1
  365. package/dist/lib/top-banner-info.js +27 -22
  366. package/dist/lib/top-banner-info.js.map +1 -1
  367. package/dist/lib/unread-pill.cjs +73 -1
  368. package/dist/lib/unread-pill.cjs.map +1 -1
  369. package/dist/lib/unread-pill.js +28 -25
  370. package/dist/lib/unread-pill.js.map +1 -1
  371. package/dist/lib/validation-messages.cjs +89 -1
  372. package/dist/lib/validation-messages.cjs.map +1 -1
  373. package/dist/lib/validation-messages.js +41 -36
  374. package/dist/lib/validation-messages.js.map +1 -1
  375. package/dist/style.css +1257 -1
  376. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +2 -2
  377. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +2 -2
  378. package/package.json +30 -29
  379. package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js +0 -2
  380. package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +0 -1
  381. package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js +0 -10
  382. package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js.map +0 -1
  383. package/dist/chunks/dropdown-UO3UJalk.js +0 -2
  384. package/dist/chunks/dropdown_constants-EUcDxBrX.js +0 -9
  385. package/dist/chunks/dropdown_constants-EUcDxBrX.js.map +0 -1
  386. package/dist/chunks/dropdown_constants-KHFvVI2L.js +0 -2
  387. package/dist/chunks/dropdown_constants-KHFvVI2L.js.map +0 -1
  388. package/dist/chunks/icon_constants-2S_OSQ1t.js +0 -2
  389. package/dist/chunks/index-6tYeqbgP.js +0 -3
  390. package/dist/chunks/index-IBtQ5jRJ.js +0 -2
  391. package/dist/chunks/index-IBtQ5jRJ.js.map +0 -1
  392. package/dist/chunks/index-b4iXYvId.js +0 -399
  393. package/dist/chunks/index-mRmwpCBG.js +0 -256
  394. package/dist/chunks/index-mRmwpCBG.js.map +0 -1
  395. package/dist/chunks/input-0Uksk4DP.js +0 -2
  396. package/dist/chunks/input_group-AS760Cp7.js +0 -2
  397. package/dist/chunks/keyboard_list_navigation-F0O8nht0.js +0 -197
  398. package/dist/chunks/keyboard_list_navigation-N74Bpdq7.js +0 -2
  399. package/dist/chunks/link_constants-Kn6kP4i1.js +0 -2
  400. package/dist/chunks/link_constants-vIUB92L4.js +0 -16
  401. package/dist/chunks/list_item_constants-LTUc74pD.js +0 -13
  402. package/dist/chunks/list_item_constants-Tsz5CO1m.js +0 -2
  403. package/dist/chunks/modal-VuMFkZFH.js +0 -82
  404. package/dist/chunks/modal-qEzlo0Sj.js +0 -2
  405. package/dist/chunks/notice_action-jO199emq.js +0 -2
  406. package/dist/chunks/notice_action-tJfD5Qw1.js +0 -209
  407. package/dist/chunks/notice_constants-c--hBFQw.js +0 -6
  408. package/dist/chunks/notice_constants-mC6al2Dm.js +0 -2
  409. package/dist/chunks/popover_constants-hOEhklvr.js +0 -2
  410. package/dist/chunks/popover_constants-qjlEkroB.js +0 -114
  411. package/dist/chunks/sr_only_close_button-iD7s1Pbj.js +0 -3
  412. package/dist/chunks/stack_constants-m9Ickqw0.js +0 -2
  413. package/dist/chunks/stack_constants-u7tNqGtc.js +0 -13
  414. package/dist/chunks/tab-GQZFMq83.js +0 -367
  415. package/dist/chunks/tab-at7WWglk.js +0 -2
  416. package/dist/lib/constants.cjs +0 -2
  417. package/dist/lib/dates.cjs +0 -2
  418. package/dist/lib/dates.js +0 -57
  419. package/dist/lib/mixins.cjs +0 -2
  420. package/dist/lib/mixins.js +0 -17
  421. package/dist/lib/utils.cjs +0 -2
  422. package/dist/lib/utils.js +0 -171
  423. package/dist/lib/validators.cjs +0 -2
  424. package/dist/lib/validators.js +0 -12
  425. /package/dist/{lib → common}/mixins.js.map +0 -0
@@ -0,0 +1,446 @@
1
+ "use strict";
2
+ const keyboard_list_navigation = require("./keyboard_list_navigation-fJnl_Iox.js");
3
+ const common_utils = require("../common/utils.cjs");
4
+ const vue = require("vue");
5
+ const _pluginVue_exportHelper = require("./_plugin-vue_export-helper-fhnQq0tA.js");
6
+ const lib_listItem = require("../lib/list-item.cjs");
7
+ const lib_skeleton = require("../lib/skeleton.cjs");
8
+ const _sfc_main$2 = {
9
+ name: "ComboboxLoadingList",
10
+ components: { DtListItem: lib_listItem.DtListItem, DtSkeleton: lib_skeleton.DtSkeleton }
11
+ };
12
+ const _hoisted_1$2 = {
13
+ class: "d-combobox__loading-list",
14
+ "aria-busy": "true"
15
+ };
16
+ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
17
+ const _component_dt_skeleton = vue.resolveComponent("dt-skeleton");
18
+ const _component_dt_list_item = vue.resolveComponent("dt-list-item");
19
+ return vue.openBlock(), vue.createElementBlock("ol", _hoisted_1$2, [
20
+ (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(7, (index) => {
21
+ return vue.createVNode(_component_dt_list_item, {
22
+ key: index,
23
+ role: "option",
24
+ "navigation-type": "none"
25
+ }, {
26
+ default: vue.withCtx(() => [
27
+ vue.createVNode(_component_dt_skeleton, {
28
+ "text-option": { type: "body" },
29
+ offset: 0
30
+ })
31
+ ]),
32
+ _: 2
33
+ }, 1024);
34
+ }), 64))
35
+ ]);
36
+ }
37
+ const ComboboxLoadingList = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
38
+ const _sfc_main$1 = {
39
+ name: "ComboboxEmptyList",
40
+ components: { DtListItem: lib_listItem.DtListItem },
41
+ props: {
42
+ /**
43
+ * Message to display when list is empty
44
+ */
45
+ message: {
46
+ type: String,
47
+ required: true
48
+ },
49
+ /**
50
+ * Additional class name for the empty list element.
51
+ * Can accept all of String, Object, and Array, i.e. has the
52
+ * same api as Vue's built-in handling of the class attribute.
53
+ */
54
+ itemClass: {
55
+ type: [String, Object, Array],
56
+ default: ""
57
+ }
58
+ }
59
+ };
60
+ const _hoisted_1$1 = {
61
+ class: "d-combobox__empty-list",
62
+ "data-qa": "dt-combobox-empty-list"
63
+ };
64
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
65
+ const _component_dt_list_item = vue.resolveComponent("dt-list-item");
66
+ return vue.openBlock(), vue.createElementBlock("ol", _hoisted_1$1, [
67
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
68
+ vue.createVNode(_component_dt_list_item, {
69
+ role: "option",
70
+ "navigation-type": "none",
71
+ type: "custom",
72
+ class: vue.normalizeClass(["dt-empty-list-item", $props.itemClass])
73
+ }, {
74
+ default: vue.withCtx(() => [
75
+ vue.createElementVNode("span", null, vue.toDisplayString($props.message), 1)
76
+ ]),
77
+ _: 1
78
+ }, 8, ["class"])
79
+ ])
80
+ ]);
81
+ }
82
+ const ComboboxEmptyList = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
83
+ const LABEL_SIZES = {
84
+ EXTRA_SMALL: "xs",
85
+ SMALL: "sm",
86
+ DEFAULT: "md",
87
+ LARGE: "lg",
88
+ EXTRA_LARGE: "xl"
89
+ };
90
+ const _sfc_main = {
91
+ name: "DtCombobox",
92
+ components: {
93
+ ComboboxLoadingList,
94
+ ComboboxEmptyList
95
+ },
96
+ mixins: [
97
+ keyboard_list_navigation.KeyboardNavigation({
98
+ indexKey: "highlightIndex",
99
+ idKey: "highlightId",
100
+ listElementKey: "getListElement",
101
+ afterHighlightMethod: "afterHighlight",
102
+ beginningOfListMethod: "beginningOfListMethod",
103
+ endOfListMethod: "endOfListMethod",
104
+ activeItemKey: "activeItemEl"
105
+ })
106
+ ],
107
+ props: {
108
+ /**
109
+ * String to use for the input label.
110
+ */
111
+ label: {
112
+ type: String,
113
+ required: true
114
+ },
115
+ /**
116
+ * Determines visibility of input label.
117
+ * @values true, false
118
+ */
119
+ labelVisible: {
120
+ type: Boolean,
121
+ default: true
122
+ },
123
+ /**
124
+ * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
125
+ * @values null, xs, sm, md, lg, xl
126
+ */
127
+ size: {
128
+ type: String,
129
+ default: null,
130
+ validator: (t) => Object.values(LABEL_SIZES).includes(t)
131
+ },
132
+ /**
133
+ * Description for the input
134
+ */
135
+ description: {
136
+ type: String,
137
+ default: ""
138
+ },
139
+ /**
140
+ * Sets an ID on the list element of the component. Used by several aria attributes
141
+ * as well as when deriving the IDs for each item.
142
+ */
143
+ listId: {
144
+ type: String,
145
+ default() {
146
+ return common_utils.getUniqueString();
147
+ }
148
+ },
149
+ /**
150
+ * A method that will be called when the selection goes past the beginning of the list.
151
+ */
152
+ onBeginningOfList: {
153
+ type: Function,
154
+ default: null
155
+ },
156
+ /**
157
+ * A method that will be called when the selection goes past the end of the list.
158
+ */
159
+ onEndOfList: {
160
+ type: Function,
161
+ default: null
162
+ },
163
+ /**
164
+ * Determines when to show the list element and also controls the aria-expanded attribute.
165
+ * @values true, false
166
+ */
167
+ showList: {
168
+ type: Boolean,
169
+ default: false
170
+ },
171
+ /**
172
+ * If the list is rendered outside the component, like when using popover as the list wrapper.
173
+ * @values true, false
174
+ */
175
+ listRenderedOutside: {
176
+ type: Boolean,
177
+ default: false
178
+ },
179
+ /**
180
+ * Determines when to show the skeletons and also controls aria-busy attribute.
181
+ * @values true, false
182
+ */
183
+ loading: {
184
+ type: Boolean,
185
+ default: false
186
+ },
187
+ /**
188
+ * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.
189
+ * @values true, false
190
+ */
191
+ emptyList: {
192
+ type: Boolean,
193
+ default: false
194
+ },
195
+ /**
196
+ * Message to show when the list is empty
197
+ */
198
+ emptyStateMessage: {
199
+ type: String,
200
+ default: ""
201
+ },
202
+ /**
203
+ * Additional class name for the empty list element.
204
+ * Can accept all of String, Object, and Array, i.e. has the
205
+ * same api as Vue's built-in handling of the class attribute.
206
+ */
207
+ emptyStateClass: {
208
+ type: [String, Object, Array],
209
+ default: ""
210
+ },
211
+ /**
212
+ * Programmatically click on the active list item element when a selection
213
+ * comes from keyboard navigation, i.e. pressing the "Enter" key.
214
+ * @values true, false
215
+ */
216
+ clickOnSelect: {
217
+ type: Boolean,
218
+ default: false
219
+ }
220
+ },
221
+ emits: [
222
+ /**
223
+ * Event fired when item selected
224
+ *
225
+ * @event select
226
+ * @type {Number}
227
+ */
228
+ "select",
229
+ /**
230
+ * Event fired when pressing escape
231
+ *
232
+ * @event escape
233
+ */
234
+ "escape",
235
+ /**
236
+ * Event fired when the highlight changes
237
+ *
238
+ * @event highlight
239
+ * @type {Number}
240
+ */
241
+ "highlight",
242
+ /**
243
+ * Event fired when list is shown or hidden
244
+ *
245
+ * @event opened
246
+ * @type {Boolean}
247
+ */
248
+ "opened"
249
+ ],
250
+ data() {
251
+ return {
252
+ // If the list is rendered at the root, rather than as a child
253
+ // of this component, this is the ref to that dom element. Set
254
+ // by the onOpen method.
255
+ outsideRenderedListRef: null,
256
+ hasSlotContent: common_utils.hasSlotContent
257
+ };
258
+ },
259
+ computed: {
260
+ inputProps() {
261
+ return {
262
+ label: this.label,
263
+ labelVisible: this.labelVisible,
264
+ size: this.size,
265
+ description: this.description,
266
+ role: "combobox",
267
+ "aria-label": this.label,
268
+ "aria-expanded": this.showList.toString(),
269
+ "aria-owns": this.listId,
270
+ "aria-haspopup": "listbox",
271
+ "aria-activedescendant": this.activeItemId,
272
+ "aria-controls": this.listId
273
+ };
274
+ },
275
+ listProps() {
276
+ return {
277
+ role: "listbox",
278
+ id: this.listId,
279
+ // The list has to be positioned relatively so that the auto-scroll can
280
+ // calculate the correct offset for the list items.
281
+ class: "d-ps-relative",
282
+ "aria-label": this.label
283
+ };
284
+ },
285
+ beginningOfListMethod() {
286
+ return this.onBeginningOfList || this.jumpToEnd;
287
+ },
288
+ endOfListMethod() {
289
+ return this.onEndOfList || this.jumpToBeginning;
290
+ },
291
+ activeItemId() {
292
+ if (!this.showList || this.highlightIndex < 0 || this.loading) {
293
+ return;
294
+ }
295
+ return this.highlightId;
296
+ },
297
+ activeItemEl() {
298
+ if (!this.highlightId)
299
+ return "";
300
+ return this.getListElement().querySelector("#" + this.highlightId);
301
+ }
302
+ },
303
+ watch: {
304
+ showList(showList) {
305
+ if (!this.listRenderedOutside) {
306
+ this.setInitialHighlightIndex();
307
+ this.$emit("opened", showList);
308
+ }
309
+ if (!showList && this.outsideRenderedListRef) {
310
+ this.outsideRenderedListRef.removeEventListener("mousemove", this.onMouseHighlight);
311
+ this.outsideRenderedListRef = null;
312
+ }
313
+ },
314
+ loading(loading) {
315
+ this.$nextTick(() => {
316
+ this.setInitialHighlightIndex();
317
+ });
318
+ },
319
+ $props: {
320
+ deep: true,
321
+ immediate: true,
322
+ handler() {
323
+ this.validateEmptyListProps();
324
+ }
325
+ }
326
+ },
327
+ created() {
328
+ this.validateEmptyListProps();
329
+ },
330
+ methods: {
331
+ onMouseHighlight(e) {
332
+ if (this.loading)
333
+ return;
334
+ const liElement = e.target.closest("li");
335
+ if (liElement && this.highlightId !== liElement.id) {
336
+ this.setHighlightId(liElement.id);
337
+ }
338
+ },
339
+ getListElement() {
340
+ var _a;
341
+ return this.outsideRenderedListRef ?? ((_a = this.$refs.listWrapper) == null ? void 0 : _a.querySelector(`#${this.listId}`));
342
+ },
343
+ clearHighlightIndex() {
344
+ if (this.showList) {
345
+ this.setHighlightIndex(-1);
346
+ }
347
+ },
348
+ afterHighlight() {
349
+ if (this.loading)
350
+ return;
351
+ this.$emit("highlight", this.highlightIndex);
352
+ },
353
+ onEnterKey() {
354
+ var _a;
355
+ if (this.loading || this.emptyList)
356
+ return;
357
+ if (this.highlightIndex >= 0) {
358
+ this.$emit("select", this.highlightIndex);
359
+ if (this.clickOnSelect) {
360
+ (_a = this.activeItemEl) == null ? void 0 : _a.click();
361
+ }
362
+ }
363
+ },
364
+ onEscapeKey() {
365
+ this.$emit("escape");
366
+ },
367
+ onOpen(open, contentRef) {
368
+ var _a;
369
+ this.outsideRenderedListRef = contentRef;
370
+ (_a = this.outsideRenderedListRef) == null ? void 0 : _a.addEventListener("mousemove", this.onMouseHighlight);
371
+ this.$emit("opened", open);
372
+ if (open) {
373
+ this.setInitialHighlightIndex();
374
+ }
375
+ },
376
+ onKeyValidation(e, eventHandler) {
377
+ if (!this.showList || !this.getListElement())
378
+ return;
379
+ this[eventHandler](e);
380
+ },
381
+ setInitialHighlightIndex() {
382
+ if (!this.showList)
383
+ return;
384
+ this.$nextTick(() => {
385
+ this.setHighlightIndex(this.loading ? -1 : 0);
386
+ });
387
+ },
388
+ validateEmptyListProps() {
389
+ if (this.$slots.emptyListItem) {
390
+ return;
391
+ }
392
+ if (this.emptyList && !this.emptyStateMessage) {
393
+ console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the
394
+ empty message.`);
395
+ }
396
+ }
397
+ }
398
+ };
399
+ const _hoisted_1 = { "data-qa": "dt-combobox-input-wrapper" };
400
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
401
+ const _component_combobox_loading_list = vue.resolveComponent("combobox-loading-list");
402
+ const _component_combobox_empty_list = vue.resolveComponent("combobox-empty-list");
403
+ return vue.openBlock(), vue.createElementBlock("div", {
404
+ onKeydown: [
405
+ _cache[3] || (_cache[3] = vue.withKeys(vue.withModifiers(($event) => $options.onKeyValidation($event, "onEscapeKey"), ["stop"]), ["esc"])),
406
+ _cache[4] || (_cache[4] = vue.withKeys(vue.withModifiers(($event) => $options.onKeyValidation($event, "onEnterKey"), ["exact"]), ["enter"])),
407
+ _cache[5] || (_cache[5] = vue.withKeys(vue.withModifiers(($event) => $options.onKeyValidation($event, "onUpKey"), ["stop", "prevent"]), ["up"])),
408
+ _cache[6] || (_cache[6] = vue.withKeys(vue.withModifiers(($event) => $options.onKeyValidation($event, "onDownKey"), ["stop", "prevent"]), ["down"])),
409
+ _cache[7] || (_cache[7] = vue.withKeys(vue.withModifiers(($event) => $options.onKeyValidation($event, "onHomeKey"), ["stop", "prevent"]), ["home"])),
410
+ _cache[8] || (_cache[8] = vue.withKeys(vue.withModifiers(($event) => $options.onKeyValidation($event, "onEndKey"), ["stop", "prevent"]), ["end"]))
411
+ ]
412
+ }, [
413
+ vue.createElementVNode("div", _hoisted_1, [
414
+ vue.renderSlot(_ctx.$slots, "input", { inputProps: $options.inputProps })
415
+ ]),
416
+ $props.showList ? (vue.openBlock(), vue.createElementBlock("div", {
417
+ key: 0,
418
+ ref: "listWrapper",
419
+ "data-qa": "dt-combobox-list-wrapper",
420
+ onMouseleave: _cache[0] || (_cache[0] = (...args) => $options.clearHighlightIndex && $options.clearHighlightIndex(...args)),
421
+ onFocusout: _cache[1] || (_cache[1] = (...args) => $options.clearHighlightIndex && $options.clearHighlightIndex(...args)),
422
+ onMousemoveCapture: _cache[2] || (_cache[2] = (...args) => $options.onMouseHighlight && $options.onMouseHighlight(...args))
423
+ }, [
424
+ $props.loading && !$props.listRenderedOutside ? (vue.openBlock(), vue.createBlock(_component_combobox_loading_list, vue.normalizeProps(vue.mergeProps({ key: 0 }, $options.listProps)), null, 16)) : $props.emptyList && ($props.emptyStateMessage || $data.hasSlotContent(_ctx.$slots.emptyListItem)) && !$props.listRenderedOutside ? (vue.openBlock(), vue.createBlock(_component_combobox_empty_list, vue.mergeProps({ key: 1 }, $options.listProps, {
425
+ message: $props.emptyStateMessage,
426
+ "item-class": $props.emptyStateClass
427
+ }), {
428
+ default: vue.withCtx(() => [
429
+ vue.renderSlot(_ctx.$slots, "emptyListItem")
430
+ ]),
431
+ _: 3
432
+ }, 16, ["message", "item-class"])) : vue.renderSlot(_ctx.$slots, "list", {
433
+ key: 2,
434
+ listProps: $options.listProps,
435
+ opened: $options.onOpen,
436
+ clearHighlightIndex: $options.clearHighlightIndex
437
+ })
438
+ ], 544)) : vue.createCommentVNode("", true)
439
+ ], 32);
440
+ }
441
+ const DtCombobox = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
442
+ exports.ComboboxEmptyList = ComboboxEmptyList;
443
+ exports.ComboboxLoadingList = ComboboxLoadingList;
444
+ exports.DtCombobox = DtCombobox;
445
+ exports.LABEL_SIZES = LABEL_SIZES;
446
+ //# sourceMappingURL=index-4qgKeErp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-b4iXYvId.js","sources":["../../components/combobox/combobox_loading-list.vue","../../components/combobox/combobox_empty-list.vue","../../components/combobox/combobox_constants.js","../../components/combobox/combobox.vue"],"sourcesContent":["<template>\n <ol\n class=\"d-combobox__loading-list\"\n aria-busy=\"true\"\n >\n <dt-list-item\n v-for=\"index in 7\"\n :key=\"index\"\n role=\"option\"\n navigation-type=\"none\"\n >\n <dt-skeleton\n :text-option=\"{ type: 'body' }\"\n :offset=\"0\"\n />\n </dt-list-item>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\nimport { DtSkeleton } from '../skeleton';\n\nexport default {\n name: 'ComboboxLoadingList',\n\n components: { DtListItem, DtSkeleton },\n};\n</script>\n","<template>\n <ol\n class=\"d-combobox__empty-list\"\n data-qa=\"dt-combobox-empty-list\"\n >\n <slot>\n <dt-list-item\n role=\"option\"\n navigation-type=\"none\"\n type=\"custom\"\n :class=\"['dt-empty-list-item', itemClass]\"\n >\n <span>{{ message }}</span>\n </dt-list-item>\n </slot>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\n\nexport default {\n name: 'ComboboxEmptyList',\n\n components: { DtListItem },\n\n props: {\n /**\n * Message to display when list is empty\n */\n message: {\n type: String,\n required: true,\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n itemClass: {\n type: [String, Object, Array],\n default: '',\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-empty-list-item {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--dt-font-size-200);\n line-height: var(--lh4);\n padding: var(--dt-space-300) var(--dt-space-450);\n}\n</style>\n","export const LABEL_SIZES = {\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n LARGE: 'lg',\n EXTRA_LARGE: 'xl',\n};\n\nexport default {\n LABEL_SIZES,\n};\n","<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { LABEL_SIZES } from '@/components/combobox/combobox_constants';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\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 * 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 * 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 when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\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 * @values true, false\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 * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\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 pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading (loading) {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if ((this.emptyList && !this.emptyStateMessage) || (!this.emptyList && this.emptyStateMessage)) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtListItem","DtSkeleton","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","index","_createVNode","_component_dt_list_item","_component_dt_skeleton","_renderSlot","_ctx","$props","_createElementVNode","LABEL_SIZES","ComboboxLoadingList","ComboboxEmptyList","KeyboardNavigation","t","getUniqueString","hasSlotContent","showList","loading","liElement","_a","open","contentRef","eventHandler","_cache","_withKeys","_withModifiers","$event","$options","args","_createBlock","_component_combobox_loading_list","$data","_component_combobox_empty_list","_mergeProps"],"mappings":";;;;;;AAuBA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY,EAAE,YAAAC,GAAY,YAAAC,EAAY;AACxC;EAzBI,OAAM;AAAA,EACN,aAAU;;;;AAFZ,SAAAC,EAAA,GAAAC,EAeK,MAfLC,GAeK;AAAA,UAXHD,EAUeE,GAAA,MAAAC,EATG,GAAC,CAAVC,MADTC,EAUeC,GAAA;AAAA,MARZ,KAAKF;AAAA,MACN,MAAK;AAAA,MACL,mBAAgB;AAAA;iBAEhB,MAGE;AAAA,QAHFC,EAGEE,GAAA;AAAA,UAFC,eAAa,EAAgB,MAAA,OAAA;AAAA,UAC7B,QAAQ;AAAA;;;;;;iDCQZX,IAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY,EAAE,YAAAC,EAAY;AAAA,EAE1B,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA,EACF;AACH;EA3CI,OAAM;AAAA,EACN,WAAQ;;;;AAFV,SAAAE,EAAA,GAAAC,EAcK,MAdLC,GAcK;AAAA,IAVHO,EASOC,yBATP,MASO;AAAA,MARLJ,EAOeC,GAAA;AAAA,QANb,MAAK;AAAA,QACL,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,gCAA8BI,EAAS,SAAA,CAAA;AAAA;mBAExC,MAA0B;AAAA,UAA1BC,EAA0B,gBAAjBD,EAAO,OAAA,GAAA,CAAA;AAAA;;;;;;iDCZXE,IAAc;AAAA,EACzB,aAAa;AAAA,EACb,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,aAAa;AACf,GCwDKhB,IAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,qBAAAiB;AAAA,IACA,mBAAAC;AAAA,EACD;AAAA,EAED,QAAQ;AAAA,IACNC,EAAmB;AAAA,MACjB,UAAU;AAAA,MACV,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,MACtB,uBAAuB;AAAA,MACvB,iBAAiB;AAAA,MACjB,eAAe;AAAA,IACjB,CAAC;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACC,MAAM,OAAO,OAAOJ,CAAW,EAAE,SAASI,CAAC;AAAA,IACxD;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAW;AAAE,eAAOC,EAAe;AAAA,MAAK;AAAA,IACzC;AAAA;AAAA;AAAA;AAAA,IAKD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,iBAAiB;AAAA,MACf,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA;AAAA;AAAA;AAAA,MAIL,wBAAwB;AAAA,MACxB,gBAAAC;AAAA;EAEH;AAAA,EAED,UAAU;AAAA,IACR,aAAc;AACZ,aAAO;AAAA,QACL,OAAO,KAAK;AAAA,QACZ,cAAc,KAAK;AAAA,QACnB,MAAM,KAAK;AAAA,QACX,aAAa,KAAK;AAAA,QAClB,MAAM;AAAA,QACN,cAAc,KAAK;AAAA,QACnB,iBAAiB,KAAK,SAAS,SAAU;AAAA,QACzC,aAAa,KAAK;AAAA,QAClB,iBAAiB;AAAA,QACjB,yBAAyB,KAAK;AAAA,QAC9B,iBAAiB,KAAK;AAAA;IAEzB;AAAA,IAED,YAAa;AACX,aAAO;AAAA,QACL,MAAM;AAAA,QACN,IAAI,KAAK;AAAA;AAAA;AAAA,QAGT,OAAO;AAAA,QACP,cAAc,KAAK;AAAA;IAEtB;AAAA,IAED,wBAAyB;AACvB,aAAO,KAAK,qBAAqB,KAAK;AAAA,IACvC;AAAA,IAED,kBAAmB;AACjB,aAAO,KAAK,eAAe,KAAK;AAAA,IACjC;AAAA,IAED,eAAgB;AACd,UAAI,GAAC,KAAK,YAAY,KAAK,iBAAiB,KAAK,KAAK;AAGtD,eAAO,KAAK;AAAA,IACb;AAAA,IAED,eAAgB;AACd,aAAK,KAAK,cACH,KAAK,iBAAiB,cAAc,MAAM,KAAK,WAAW,IADnC;AAAA,IAE/B;AAAA,EACF;AAAA,EAED,OAAO;AAAA,IACL,SAAUC,GAAU;AAGlB,MAAK,KAAK,wBACR,KAAK,yBAAwB,GAC7B,KAAK,MAAM,UAAUA,CAAQ,IAG3B,CAACA,KAAY,KAAK,2BACpB,KAAK,uBAAuB,oBAAoB,aAAa,KAAK,gBAAgB,GAClF,KAAK,yBAAyB;AAAA,IAEjC;AAAA,IAED,QAASC,GAAS;AAChB,WAAK,UAAU,MAAM;AACnB,aAAK,yBAAwB;AAAA,MAC/B,CAAC;AAAA,IACF;AAAA,IAED,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAW;AACT,aAAK,uBAAsB;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,uBAAsB;AAAA,EAC5B;AAAA,EAED,SAAS;AAAA,IACP,iBAAkB,GAAG;AACnB,UAAI,KAAK;AAAS;AAElB,YAAMC,IAAY,EAAE,OAAO,QAAQ,IAAI;AAEvC,MAAIA,KAAa,KAAK,gBAAgBA,EAAU,MAC9C,KAAK,eAAeA,EAAU,EAAE;AAAA,IAEnC;AAAA,IAED,iBAAkB;;AAChB,aAAO,KAAK,4BAA0BC,IAAA,KAAK,MAAM,gBAAX,gBAAAA,EAAwB,cAAc,IAAI,KAAK,MAAM;AAAA,IAC5F;AAAA,IAED,sBAAuB;AACrB,MAAI,KAAK,YACP,KAAK,kBAAkB,EAAE;AAAA,IAE5B;AAAA,IAED,iBAAkB;AAChB,MAAI,KAAK,WACT,KAAK,MAAM,aAAa,KAAK,cAAc;AAAA,IAC5C;AAAA,IAED,aAAc;;AACZ,MAAI,KAAK,WAAW,KAAK,aAErB,KAAK,kBAAkB,MACzB,KAAK,MAAM,UAAU,KAAK,cAAc,GAEpC,KAAK,mBACPA,IAAA,KAAK,iBAAL,QAAAA,EAAmB;AAAA,IAGxB;AAAA,IAED,cAAe;AACb,WAAK,MAAM,QAAQ;AAAA,IACpB;AAAA,IAED,OAAQC,GAAMC,GAAY;;AACxB,WAAK,yBAAyBA,IAC9BF,IAAA,KAAK,2BAAL,QAAAA,EAA6B,iBAAiB,aAAa,KAAK,mBAChE,KAAK,MAAM,UAAUC,CAAI,GAErBA,KACF,KAAK,yBAAwB;AAAA,IAEhC;AAAA,IAED,gBAAiB,GAAGE,GAAc;AAChC,MAAI,CAAC,KAAK,YAAY,CAAC,KAAK,eAAgB,KAE5C,KAAKA,CAAY,EAAE,CAAC;AAAA,IACrB;AAAA,IAED,2BAA4B;AAC1B,MAAK,KAAK,YACV,KAAK,UAAU,MAAM;AAGnB,aAAK,kBAAkB,KAAK,UAAU,KAAK,CAAC;AAAA,MAC9C,CAAC;AAAA,IACF;AAAA,IAED,yBAA0B;AACxB,MAAI,KAAK,OAAO,kBAEX,KAAK,aAAa,CAAC,KAAK,qBAAuB,CAAC,KAAK,aAAa,KAAK,sBAC1E,QAAQ,MAAM;AAAA,qBACD;AAAA,IAEhB;AAAA,EACF;AACH,GAhZSxB,IAAA,EAAA,WAAQ,4BAA2B;;;cAR1CD,EA6CM,OAAA;AAAA,IA5CH,WAAO;AAAA,MAAW0B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAAC,EAAA,CAAAC,MAAAC,EAAA,gBAAgBD,GAAM,aAAA,GAAA,CAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA;AAAA,MACnBH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAAC,EAAA,CAAAC,MAAAC,EAAA,gBAAgBD,GAAM,YAAA,GAAA,CAAA,OAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,MAClBH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAAC,EAAA,CAAAC,MAAAC,EAAA,gBAAgBD,GAAM,SAAA,GAAA,CAAA,QAAA,SAAA,CAAA,GAAA,CAAA,IAAA,CAAA;AAAA,MACpBH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAAC,EAAA,CAAAC,MAAAC,EAAA,gBAAgBD,GAAM,WAAA,GAAA,CAAA,QAAA,SAAA,CAAA,GAAA,CAAA,MAAA,CAAA;AAAA,MACtBH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAAC,EAAA,CAAAC,MAAAC,EAAA,gBAAgBD,GAAM,WAAA,GAAA,CAAA,QAAA,SAAA,CAAA,GAAA,CAAA,MAAA,CAAA;AAAA,MACvBH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAAC,EAAA,CAAAC,MAAAC,EAAA,gBAAgBD,GAAM,UAAA,GAAA,CAAA,QAAA,SAAA,CAAA,GAAA,CAAA,KAAA,CAAA;AAAA;;IAEjDlB,EAMM,OANNV,GAMM;AAAA,MAJJO,EAGEC,EAAA,QAAA,SAAA,EADC,YAAaqB,EAAU,YAAA;AAAA;IAKpBpB,EAAQ,iBADhBV,EA4BM,OAAA;AAAA;MA1BJ,KAAI;AAAA,MACJ,WAAQ;AAAA,MACP,wCAAY8B,EAAmB,uBAAAA,EAAA,oBAAA,GAAAC,CAAA;AAAA,MAC/B,sCAAUD,EAAmB,uBAAAA,EAAA,oBAAA,GAAAC,CAAA;AAAA,oDACVD,EAAgB,oBAAAA,EAAA,iBAAA,GAAAC,CAAA;AAAA;MAG5BrB,EAAA,YAAYA,EAAmB,uBADvCX,EAAA,GAAAiC,EAGEC,mBADQH,EAAS,SAAA,CAAA,GAAA,MAAA,EAAA,KAGNpB,EAAS,cAAKA,uBAAqBwB,EAAA,eAAezB,EAAM,OAAC,aAAa,MAAA,CAAOC,EAAmB,4BAD7GsB,EAOsBG,GAPtBC,EAOsB,EAAA,KAAA,EAAA,GALZN,EAAS,WAAA;AAAA,QAChB,SAASpB,EAAiB;AAAA,QAC1B,cAAYA,EAAe;AAAA;mBAE5B,MAA6B;AAAA,UAA7BF,EAA6BC,EAAA,QAAA,eAAA;AAAA;;2CAG/BD,EAMEC,EAAA,QAAA,QAAA;AAAA;QAHC,WAAYqB,EAAS;AAAA,QACrB,QAAQA,EAAM;AAAA,QACd,qBAAuBA,EAAmB;AAAA;;;;;"}
1
+ {"version":3,"file":"index-4qgKeErp.js","sources":["../../components/combobox/combobox_loading-list.vue","../../components/combobox/combobox_empty-list.vue","../../components/combobox/combobox_constants.js","../../components/combobox/combobox.vue"],"sourcesContent":["<template>\n <ol\n class=\"d-combobox__loading-list\"\n aria-busy=\"true\"\n >\n <dt-list-item\n v-for=\"index in 7\"\n :key=\"index\"\n role=\"option\"\n navigation-type=\"none\"\n >\n <dt-skeleton\n :text-option=\"{ type: 'body' }\"\n :offset=\"0\"\n />\n </dt-list-item>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\nimport { DtSkeleton } from '../skeleton';\n\nexport default {\n name: 'ComboboxLoadingList',\n\n components: { DtListItem, DtSkeleton },\n};\n</script>\n","<template>\n <ol\n class=\"d-combobox__empty-list\"\n data-qa=\"dt-combobox-empty-list\"\n >\n <slot>\n <dt-list-item\n role=\"option\"\n navigation-type=\"none\"\n type=\"custom\"\n :class=\"['dt-empty-list-item', itemClass]\"\n >\n <span>{{ message }}</span>\n </dt-list-item>\n </slot>\n </ol>\n</template>\n\n<script>\nimport { DtListItem } from '../list_item';\n\nexport default {\n name: 'ComboboxEmptyList',\n\n components: { DtListItem },\n\n props: {\n /**\n * Message to display when list is empty\n */\n message: {\n type: String,\n required: true,\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n itemClass: {\n type: [String, Object, Array],\n default: '',\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-empty-list-item {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--dt-font-size-200);\n line-height: var(--lh4);\n padding: var(--dt-space-300) var(--dt-space-450);\n}\n</style>\n","export const LABEL_SIZES = {\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n LARGE: 'lg',\n EXTRA_LARGE: 'xl',\n};\n\nexport default {\n LABEL_SIZES,\n};\n","<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { LABEL_SIZES } from '@/components/combobox/combobox_constants';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\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 * 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 * 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 when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\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 * @values true, false\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 * Additional class name for the empty list element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\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 pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading (loading) {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if (this.emptyList && !this.emptyStateMessage) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtListItem","DtSkeleton","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","_createVNode","_renderSlot","_createElementVNode","KeyboardNavigation","getUniqueString","hasSlotContent","_withKeys","_withModifiers","_createBlock","_mergeProps"],"mappings":"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"}