@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,447 @@
1
+ import { KeyboardNavigation } from "./keyboard_list_navigation-ScXhrxya.js";
2
+ import { getUniqueString, hasSlotContent } from "../common/utils.js";
3
+ import { resolveComponent, openBlock, createElementBlock, Fragment, renderList, createVNode, withCtx, renderSlot, normalizeClass, createElementVNode, toDisplayString, withKeys, withModifiers, createBlock, normalizeProps, mergeProps, createCommentVNode } from "vue";
4
+ import { _export_sfc } from "./_plugin-vue_export-helper-caHeSgYY.js";
5
+ import { DtListItem } from "../lib/list-item.js";
6
+ import { DtSkeleton } from "../lib/skeleton.js";
7
+ const _sfc_main$2 = {
8
+ name: "ComboboxLoadingList",
9
+ components: { DtListItem, DtSkeleton }
10
+ };
11
+ const _hoisted_1$2 = {
12
+ class: "d-combobox__loading-list",
13
+ "aria-busy": "true"
14
+ };
15
+ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
16
+ const _component_dt_skeleton = resolveComponent("dt-skeleton");
17
+ const _component_dt_list_item = resolveComponent("dt-list-item");
18
+ return openBlock(), createElementBlock("ol", _hoisted_1$2, [
19
+ (openBlock(), createElementBlock(Fragment, null, renderList(7, (index) => {
20
+ return createVNode(_component_dt_list_item, {
21
+ key: index,
22
+ role: "option",
23
+ "navigation-type": "none"
24
+ }, {
25
+ default: withCtx(() => [
26
+ createVNode(_component_dt_skeleton, {
27
+ "text-option": { type: "body" },
28
+ offset: 0
29
+ })
30
+ ]),
31
+ _: 2
32
+ }, 1024);
33
+ }), 64))
34
+ ]);
35
+ }
36
+ const ComboboxLoadingList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
37
+ const _sfc_main$1 = {
38
+ name: "ComboboxEmptyList",
39
+ components: { DtListItem },
40
+ props: {
41
+ /**
42
+ * Message to display when list is empty
43
+ */
44
+ message: {
45
+ type: String,
46
+ required: true
47
+ },
48
+ /**
49
+ * Additional class name for the empty list element.
50
+ * Can accept all of String, Object, and Array, i.e. has the
51
+ * same api as Vue's built-in handling of the class attribute.
52
+ */
53
+ itemClass: {
54
+ type: [String, Object, Array],
55
+ default: ""
56
+ }
57
+ }
58
+ };
59
+ const _hoisted_1$1 = {
60
+ class: "d-combobox__empty-list",
61
+ "data-qa": "dt-combobox-empty-list"
62
+ };
63
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
64
+ const _component_dt_list_item = resolveComponent("dt-list-item");
65
+ return openBlock(), createElementBlock("ol", _hoisted_1$1, [
66
+ renderSlot(_ctx.$slots, "default", {}, () => [
67
+ createVNode(_component_dt_list_item, {
68
+ role: "option",
69
+ "navigation-type": "none",
70
+ type: "custom",
71
+ class: normalizeClass(["dt-empty-list-item", $props.itemClass])
72
+ }, {
73
+ default: withCtx(() => [
74
+ createElementVNode("span", null, toDisplayString($props.message), 1)
75
+ ]),
76
+ _: 1
77
+ }, 8, ["class"])
78
+ ])
79
+ ]);
80
+ }
81
+ const ComboboxEmptyList = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
82
+ const LABEL_SIZES = {
83
+ EXTRA_SMALL: "xs",
84
+ SMALL: "sm",
85
+ DEFAULT: "md",
86
+ LARGE: "lg",
87
+ EXTRA_LARGE: "xl"
88
+ };
89
+ const _sfc_main = {
90
+ name: "DtCombobox",
91
+ components: {
92
+ ComboboxLoadingList,
93
+ ComboboxEmptyList
94
+ },
95
+ mixins: [
96
+ KeyboardNavigation({
97
+ indexKey: "highlightIndex",
98
+ idKey: "highlightId",
99
+ listElementKey: "getListElement",
100
+ afterHighlightMethod: "afterHighlight",
101
+ beginningOfListMethod: "beginningOfListMethod",
102
+ endOfListMethod: "endOfListMethod",
103
+ activeItemKey: "activeItemEl"
104
+ })
105
+ ],
106
+ props: {
107
+ /**
108
+ * String to use for the input label.
109
+ */
110
+ label: {
111
+ type: String,
112
+ required: true
113
+ },
114
+ /**
115
+ * Determines visibility of input label.
116
+ * @values true, false
117
+ */
118
+ labelVisible: {
119
+ type: Boolean,
120
+ default: true
121
+ },
122
+ /**
123
+ * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
124
+ * @values null, xs, sm, md, lg, xl
125
+ */
126
+ size: {
127
+ type: String,
128
+ default: null,
129
+ validator: (t) => Object.values(LABEL_SIZES).includes(t)
130
+ },
131
+ /**
132
+ * Description for the input
133
+ */
134
+ description: {
135
+ type: String,
136
+ default: ""
137
+ },
138
+ /**
139
+ * Sets an ID on the list element of the component. Used by several aria attributes
140
+ * as well as when deriving the IDs for each item.
141
+ */
142
+ listId: {
143
+ type: String,
144
+ default() {
145
+ return getUniqueString();
146
+ }
147
+ },
148
+ /**
149
+ * A method that will be called when the selection goes past the beginning of the list.
150
+ */
151
+ onBeginningOfList: {
152
+ type: Function,
153
+ default: null
154
+ },
155
+ /**
156
+ * A method that will be called when the selection goes past the end of the list.
157
+ */
158
+ onEndOfList: {
159
+ type: Function,
160
+ default: null
161
+ },
162
+ /**
163
+ * Determines when to show the list element and also controls the aria-expanded attribute.
164
+ * @values true, false
165
+ */
166
+ showList: {
167
+ type: Boolean,
168
+ default: false
169
+ },
170
+ /**
171
+ * If the list is rendered outside the component, like when using popover as the list wrapper.
172
+ * @values true, false
173
+ */
174
+ listRenderedOutside: {
175
+ type: Boolean,
176
+ default: false
177
+ },
178
+ /**
179
+ * Determines when to show the skeletons and also controls aria-busy attribute.
180
+ * @values true, false
181
+ */
182
+ loading: {
183
+ type: Boolean,
184
+ default: false
185
+ },
186
+ /**
187
+ * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.
188
+ * @values true, false
189
+ */
190
+ emptyList: {
191
+ type: Boolean,
192
+ default: false
193
+ },
194
+ /**
195
+ * Message to show when the list is empty
196
+ */
197
+ emptyStateMessage: {
198
+ type: String,
199
+ default: ""
200
+ },
201
+ /**
202
+ * Additional class name for the empty list element.
203
+ * Can accept all of String, Object, and Array, i.e. has the
204
+ * same api as Vue's built-in handling of the class attribute.
205
+ */
206
+ emptyStateClass: {
207
+ type: [String, Object, Array],
208
+ default: ""
209
+ },
210
+ /**
211
+ * Programmatically click on the active list item element when a selection
212
+ * comes from keyboard navigation, i.e. pressing the "Enter" key.
213
+ * @values true, false
214
+ */
215
+ clickOnSelect: {
216
+ type: Boolean,
217
+ default: false
218
+ }
219
+ },
220
+ emits: [
221
+ /**
222
+ * Event fired when item selected
223
+ *
224
+ * @event select
225
+ * @type {Number}
226
+ */
227
+ "select",
228
+ /**
229
+ * Event fired when pressing escape
230
+ *
231
+ * @event escape
232
+ */
233
+ "escape",
234
+ /**
235
+ * Event fired when the highlight changes
236
+ *
237
+ * @event highlight
238
+ * @type {Number}
239
+ */
240
+ "highlight",
241
+ /**
242
+ * Event fired when list is shown or hidden
243
+ *
244
+ * @event opened
245
+ * @type {Boolean}
246
+ */
247
+ "opened"
248
+ ],
249
+ data() {
250
+ return {
251
+ // If the list is rendered at the root, rather than as a child
252
+ // of this component, this is the ref to that dom element. Set
253
+ // by the onOpen method.
254
+ outsideRenderedListRef: null,
255
+ hasSlotContent
256
+ };
257
+ },
258
+ computed: {
259
+ inputProps() {
260
+ return {
261
+ label: this.label,
262
+ labelVisible: this.labelVisible,
263
+ size: this.size,
264
+ description: this.description,
265
+ role: "combobox",
266
+ "aria-label": this.label,
267
+ "aria-expanded": this.showList.toString(),
268
+ "aria-owns": this.listId,
269
+ "aria-haspopup": "listbox",
270
+ "aria-activedescendant": this.activeItemId,
271
+ "aria-controls": this.listId
272
+ };
273
+ },
274
+ listProps() {
275
+ return {
276
+ role: "listbox",
277
+ id: this.listId,
278
+ // The list has to be positioned relatively so that the auto-scroll can
279
+ // calculate the correct offset for the list items.
280
+ class: "d-ps-relative",
281
+ "aria-label": this.label
282
+ };
283
+ },
284
+ beginningOfListMethod() {
285
+ return this.onBeginningOfList || this.jumpToEnd;
286
+ },
287
+ endOfListMethod() {
288
+ return this.onEndOfList || this.jumpToBeginning;
289
+ },
290
+ activeItemId() {
291
+ if (!this.showList || this.highlightIndex < 0 || this.loading) {
292
+ return;
293
+ }
294
+ return this.highlightId;
295
+ },
296
+ activeItemEl() {
297
+ if (!this.highlightId)
298
+ return "";
299
+ return this.getListElement().querySelector("#" + this.highlightId);
300
+ }
301
+ },
302
+ watch: {
303
+ showList(showList) {
304
+ if (!this.listRenderedOutside) {
305
+ this.setInitialHighlightIndex();
306
+ this.$emit("opened", showList);
307
+ }
308
+ if (!showList && this.outsideRenderedListRef) {
309
+ this.outsideRenderedListRef.removeEventListener("mousemove", this.onMouseHighlight);
310
+ this.outsideRenderedListRef = null;
311
+ }
312
+ },
313
+ loading(loading) {
314
+ this.$nextTick(() => {
315
+ this.setInitialHighlightIndex();
316
+ });
317
+ },
318
+ $props: {
319
+ deep: true,
320
+ immediate: true,
321
+ handler() {
322
+ this.validateEmptyListProps();
323
+ }
324
+ }
325
+ },
326
+ created() {
327
+ this.validateEmptyListProps();
328
+ },
329
+ methods: {
330
+ onMouseHighlight(e) {
331
+ if (this.loading)
332
+ return;
333
+ const liElement = e.target.closest("li");
334
+ if (liElement && this.highlightId !== liElement.id) {
335
+ this.setHighlightId(liElement.id);
336
+ }
337
+ },
338
+ getListElement() {
339
+ var _a;
340
+ return this.outsideRenderedListRef ?? ((_a = this.$refs.listWrapper) == null ? void 0 : _a.querySelector(`#${this.listId}`));
341
+ },
342
+ clearHighlightIndex() {
343
+ if (this.showList) {
344
+ this.setHighlightIndex(-1);
345
+ }
346
+ },
347
+ afterHighlight() {
348
+ if (this.loading)
349
+ return;
350
+ this.$emit("highlight", this.highlightIndex);
351
+ },
352
+ onEnterKey() {
353
+ var _a;
354
+ if (this.loading || this.emptyList)
355
+ return;
356
+ if (this.highlightIndex >= 0) {
357
+ this.$emit("select", this.highlightIndex);
358
+ if (this.clickOnSelect) {
359
+ (_a = this.activeItemEl) == null ? void 0 : _a.click();
360
+ }
361
+ }
362
+ },
363
+ onEscapeKey() {
364
+ this.$emit("escape");
365
+ },
366
+ onOpen(open, contentRef) {
367
+ var _a;
368
+ this.outsideRenderedListRef = contentRef;
369
+ (_a = this.outsideRenderedListRef) == null ? void 0 : _a.addEventListener("mousemove", this.onMouseHighlight);
370
+ this.$emit("opened", open);
371
+ if (open) {
372
+ this.setInitialHighlightIndex();
373
+ }
374
+ },
375
+ onKeyValidation(e, eventHandler) {
376
+ if (!this.showList || !this.getListElement())
377
+ return;
378
+ this[eventHandler](e);
379
+ },
380
+ setInitialHighlightIndex() {
381
+ if (!this.showList)
382
+ return;
383
+ this.$nextTick(() => {
384
+ this.setHighlightIndex(this.loading ? -1 : 0);
385
+ });
386
+ },
387
+ validateEmptyListProps() {
388
+ if (this.$slots.emptyListItem) {
389
+ return;
390
+ }
391
+ if (this.emptyList && !this.emptyStateMessage) {
392
+ console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the
393
+ empty message.`);
394
+ }
395
+ }
396
+ }
397
+ };
398
+ const _hoisted_1 = { "data-qa": "dt-combobox-input-wrapper" };
399
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
400
+ const _component_combobox_loading_list = resolveComponent("combobox-loading-list");
401
+ const _component_combobox_empty_list = resolveComponent("combobox-empty-list");
402
+ return openBlock(), createElementBlock("div", {
403
+ onKeydown: [
404
+ _cache[3] || (_cache[3] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onEscapeKey"), ["stop"]), ["esc"])),
405
+ _cache[4] || (_cache[4] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onEnterKey"), ["exact"]), ["enter"])),
406
+ _cache[5] || (_cache[5] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onUpKey"), ["stop", "prevent"]), ["up"])),
407
+ _cache[6] || (_cache[6] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onDownKey"), ["stop", "prevent"]), ["down"])),
408
+ _cache[7] || (_cache[7] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onHomeKey"), ["stop", "prevent"]), ["home"])),
409
+ _cache[8] || (_cache[8] = withKeys(withModifiers(($event) => $options.onKeyValidation($event, "onEndKey"), ["stop", "prevent"]), ["end"]))
410
+ ]
411
+ }, [
412
+ createElementVNode("div", _hoisted_1, [
413
+ renderSlot(_ctx.$slots, "input", { inputProps: $options.inputProps })
414
+ ]),
415
+ $props.showList ? (openBlock(), createElementBlock("div", {
416
+ key: 0,
417
+ ref: "listWrapper",
418
+ "data-qa": "dt-combobox-list-wrapper",
419
+ onMouseleave: _cache[0] || (_cache[0] = (...args) => $options.clearHighlightIndex && $options.clearHighlightIndex(...args)),
420
+ onFocusout: _cache[1] || (_cache[1] = (...args) => $options.clearHighlightIndex && $options.clearHighlightIndex(...args)),
421
+ onMousemoveCapture: _cache[2] || (_cache[2] = (...args) => $options.onMouseHighlight && $options.onMouseHighlight(...args))
422
+ }, [
423
+ $props.loading && !$props.listRenderedOutside ? (openBlock(), createBlock(_component_combobox_loading_list, normalizeProps(mergeProps({ key: 0 }, $options.listProps)), null, 16)) : $props.emptyList && ($props.emptyStateMessage || $data.hasSlotContent(_ctx.$slots.emptyListItem)) && !$props.listRenderedOutside ? (openBlock(), createBlock(_component_combobox_empty_list, mergeProps({ key: 1 }, $options.listProps, {
424
+ message: $props.emptyStateMessage,
425
+ "item-class": $props.emptyStateClass
426
+ }), {
427
+ default: withCtx(() => [
428
+ renderSlot(_ctx.$slots, "emptyListItem")
429
+ ]),
430
+ _: 3
431
+ }, 16, ["message", "item-class"])) : renderSlot(_ctx.$slots, "list", {
432
+ key: 2,
433
+ listProps: $options.listProps,
434
+ opened: $options.onOpen,
435
+ clearHighlightIndex: $options.clearHighlightIndex
436
+ })
437
+ ], 544)) : createCommentVNode("", true)
438
+ ], 32);
439
+ }
440
+ const DtCombobox = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
441
+ export {
442
+ ComboboxEmptyList,
443
+ ComboboxLoadingList,
444
+ DtCombobox,
445
+ LABEL_SIZES
446
+ };
447
+ //# sourceMappingURL=index-b_MgDylR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-6tYeqbgP.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","e","liElement","_a","open","contentRef","eventHandler","_cache","_withKeys","_withModifiers","$event","$options","args","_createBlock","_component_combobox_loading_list","$data","_component_combobox_empty_list","_mergeProps"],"mappings":"8OAuBKA,EAAU,CACb,KAAM,sBAEN,WAAY,CAAA,WAAEC,EAAU,WAAA,WAAEC,YAAY,CACxC,KAzBI,MAAM,2BACN,YAAU,+GAFZ,OAAAC,YAAA,EAAAC,qBAeK,KAfLC,EAeK,gBAXHD,EAAAA,mBAUeE,EAAA,SAAA,KAAAC,aATG,EAATC,GADTC,EAAAA,YAUeC,EAAA,CARZ,IAAKF,EACN,KAAK,SACL,kBAAgB,2BAEhB,IAGE,CAHFC,EAAAA,YAGEE,EAAA,CAFC,cAAa,CAAgB,KAAA,MAAA,EAC7B,OAAQ,uDCQZX,EAAU,CACb,KAAM,oBAEN,WAAY,CAAEC,WAAAA,EAAAA,UAAY,EAE1B,MAAO,CAIL,QAAS,CACP,KAAM,OACN,SAAU,EACX,EAOD,UAAW,CACT,KAAM,CAAC,OAAQ,OAAQ,KAAK,EAC5B,QAAS,EACV,CACF,CACH,KA3CI,MAAM,yBACN,UAAQ,6FAFV,OAAAE,YAAA,EAAAC,qBAcK,KAdLC,EAcK,CAVHO,EAAAA,WASOC,sBATP,IASO,CARLJ,EAAAA,YAOeC,EAAA,CANb,KAAK,SACL,kBAAgB,OAChB,KAAK,SACJ,6CAA8BI,EAAS,SAAA,CAAA,sBAExC,IAA0B,CAA1BC,EAAA,mBAA0B,8BAAjBD,EAAO,OAAA,EAAA,CAAA,wDCZXE,EAAc,CACzB,YAAa,KACb,MAAO,KACP,QAAS,KACT,MAAO,KACP,YAAa,IACf,ECwDKhB,EAAU,CACb,KAAM,aAEN,WAAY,CACV,oBAAAiB,EACA,kBAAAC,CACD,EAED,OAAQ,CACNC,IAAmB,CACjB,SAAU,iBACV,MAAO,cACP,eAAgB,iBAChB,qBAAsB,iBACtB,sBAAuB,wBACvB,gBAAiB,kBACjB,cAAe,cACjB,CAAC,CACF,EAED,MAAO,CAIL,MAAO,CACL,KAAM,OACN,SAAU,EACX,EAMD,aAAc,CACZ,KAAM,QACN,QAAS,EACV,EAMD,KAAM,CACJ,KAAM,OACN,QAAS,KACT,UAAYC,GAAM,OAAO,OAAOJ,CAAW,EAAE,SAASI,CAAC,CACxD,EAKD,YAAa,CACX,KAAM,OACN,QAAS,EACV,EAMD,OAAQ,CACN,KAAM,OACN,SAAW,CAAE,OAAOC,EAAe,gBAAA,CAAK,CACzC,EAKD,kBAAmB,CACjB,KAAM,SACN,QAAS,IACV,EAKD,YAAa,CACX,KAAM,SACN,QAAS,IACV,EAMD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAMD,oBAAqB,CACnB,KAAM,QACN,QAAS,EACV,EAMD,QAAS,CACP,KAAM,QACN,QAAS,EACV,EAMD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAKD,kBAAmB,CACjB,KAAM,OACN,QAAS,EACV,EAOD,gBAAiB,CACf,KAAM,CAAC,OAAQ,OAAQ,KAAK,EAC5B,QAAS,EACV,EAOD,cAAe,CACb,KAAM,QACN,QAAS,EACV,CACF,EAED,MAAO,CAOL,SAOA,SAQA,YAQA,QACD,EAED,MAAQ,CACN,MAAO,CAIL,uBAAwB,KACxB,eAAAC,EAAc,eAEjB,EAED,SAAU,CACR,YAAc,CACZ,MAAO,CACL,MAAO,KAAK,MACZ,aAAc,KAAK,aACnB,KAAM,KAAK,KACX,YAAa,KAAK,YAClB,KAAM,WACN,aAAc,KAAK,MACnB,gBAAiB,KAAK,SAAS,SAAU,EACzC,YAAa,KAAK,OAClB,gBAAiB,UACjB,wBAAyB,KAAK,aAC9B,gBAAiB,KAAK,OAEzB,EAED,WAAa,CACX,MAAO,CACL,KAAM,UACN,GAAI,KAAK,OAGT,MAAO,gBACP,aAAc,KAAK,MAEtB,EAED,uBAAyB,CACvB,OAAO,KAAK,mBAAqB,KAAK,SACvC,EAED,iBAAmB,CACjB,OAAO,KAAK,aAAe,KAAK,eACjC,EAED,cAAgB,CACd,GAAI,GAAC,KAAK,UAAY,KAAK,eAAiB,GAAK,KAAK,SAGtD,OAAO,KAAK,WACb,EAED,cAAgB,CACd,OAAK,KAAK,YACH,KAAK,iBAAiB,cAAc,IAAM,KAAK,WAAW,EADnC,EAE/B,CACF,EAED,MAAO,CACL,SAAUC,EAAU,CAGb,KAAK,sBACR,KAAK,yBAAwB,EAC7B,KAAK,MAAM,SAAUA,CAAQ,GAG3B,CAACA,GAAY,KAAK,yBACpB,KAAK,uBAAuB,oBAAoB,YAAa,KAAK,gBAAgB,EAClF,KAAK,uBAAyB,KAEjC,EAED,QAASC,EAAS,CAChB,KAAK,UAAU,IAAM,CACnB,KAAK,yBAAwB,CAC/B,CAAC,CACF,EAED,OAAQ,CACN,KAAM,GACN,UAAW,GACX,SAAW,CACT,KAAK,uBAAsB,CAC5B,CACF,CACF,EAED,SAAW,CACT,KAAK,uBAAsB,CAC5B,EAED,QAAS,CACP,iBAAkBC,EAAG,CACnB,GAAI,KAAK,QAAS,OAElB,MAAMC,EAAYD,EAAE,OAAO,QAAQ,IAAI,EAEnCC,GAAa,KAAK,cAAgBA,EAAU,IAC9C,KAAK,eAAeA,EAAU,EAAE,CAEnC,EAED,gBAAkB,OAChB,OAAO,KAAK,0BAA0BC,EAAA,KAAK,MAAM,cAAX,YAAAA,EAAwB,cAAc,IAAI,KAAK,MAAM,IAC5F,EAED,qBAAuB,CACjB,KAAK,UACP,KAAK,kBAAkB,EAAE,CAE5B,EAED,gBAAkB,CACZ,KAAK,SACT,KAAK,MAAM,YAAa,KAAK,cAAc,CAC5C,EAED,YAAc,OACR,KAAK,SAAW,KAAK,WAErB,KAAK,gBAAkB,IACzB,KAAK,MAAM,SAAU,KAAK,cAAc,EAEpC,KAAK,iBACPA,EAAA,KAAK,eAAL,MAAAA,EAAmB,SAGxB,EAED,aAAe,CACb,KAAK,MAAM,QAAQ,CACpB,EAED,OAAQC,EAAMC,EAAY,OACxB,KAAK,uBAAyBA,GAC9BF,EAAA,KAAK,yBAAL,MAAAA,EAA6B,iBAAiB,YAAa,KAAK,kBAChE,KAAK,MAAM,SAAUC,CAAI,EAErBA,GACF,KAAK,yBAAwB,CAEhC,EAED,gBAAiBH,EAAGK,EAAc,CAC5B,CAAC,KAAK,UAAY,CAAC,KAAK,eAAgB,GAE5C,KAAKA,CAAY,EAAEL,CAAC,CACrB,EAED,0BAA4B,CACrB,KAAK,UACV,KAAK,UAAU,IAAM,CAGnB,KAAK,kBAAkB,KAAK,QAAU,GAAK,CAAC,CAC9C,CAAC,CACF,EAED,wBAA0B,CACpB,KAAK,OAAO,gBAEX,KAAK,WAAa,CAAC,KAAK,mBAAuB,CAAC,KAAK,WAAa,KAAK,oBAC1E,QAAQ,MAAM;AAAA,qBACD,CAEhB,CACF,CACH,EAhZSpB,EAAA,CAAA,UAAQ,2BAA2B,+IAR1CD,EA6CM,mBAAA,MAAA,CA5CH,UAAO,CAAW2B,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAAA,SAAAC,EAAA,cAAAC,GAAAC,EAAA,gBAAgBD,EAAM,aAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,KAAA,CAAA,GACnBH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAAA,SAAAC,EAAA,cAAAC,GAAAC,EAAA,gBAAgBD,EAAM,YAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,OAAA,CAAA,GAClBH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,WAAAC,EAAAA,cAAAC,GAAAC,EAAA,gBAAgBD,EAAM,SAAA,EAAA,CAAA,OAAA,SAAA,CAAA,EAAA,CAAA,IAAA,CAAA,GACpBH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,WAAAC,EAAAA,cAAAC,GAAAC,EAAA,gBAAgBD,EAAM,WAAA,EAAA,CAAA,OAAA,SAAA,CAAA,EAAA,CAAA,MAAA,CAAA,GACtBH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,WAAAC,EAAAA,cAAAC,GAAAC,EAAA,gBAAgBD,EAAM,WAAA,EAAA,CAAA,OAAA,SAAA,CAAA,EAAA,CAAA,MAAA,CAAA,GACvBH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,WAAAC,EAAAA,cAAAC,GAAAC,EAAA,gBAAgBD,EAAM,UAAA,EAAA,CAAA,OAAA,SAAA,CAAA,EAAA,CAAA,KAAA,CAAA,MAEjDnB,EAAA,mBAMM,MANNV,EAMM,CAJJO,EAGE,WAAAC,EAAA,OAAA,QAAA,CADC,WAAasB,EAAU,WAAA,IAKpBrB,EAAQ,wBADhBV,EA4BM,mBAAA,MAAA,OA1BJ,IAAI,cACJ,UAAQ,2BACP,iCAAY+B,EAAmB,qBAAAA,EAAA,oBAAA,GAAAC,CAAA,GAC/B,+BAAUD,EAAmB,qBAAAA,EAAA,oBAAA,GAAAC,CAAA,0CACVD,EAAgB,kBAAAA,EAAA,iBAAA,GAAAC,CAAA,KAG5BtB,EAAA,UAAYA,EAAmB,qBADvCX,EAAAA,UAAA,EAAAkC,EAAA,YAGEC,wCADQH,EAAS,SAAA,CAAA,EAAA,KAAA,EAAA,GAGNrB,EAAS,YAAKA,qBAAqByB,EAAA,eAAe1B,EAAM,OAAC,aAAa,IAAA,CAAOC,EAAmB,mCAD7GuB,cAOsBG,EAPtBC,EAOsB,WAAA,CAAA,IAAA,CAAA,EALZN,EAAS,UAAA,CAChB,QAASrB,EAAiB,kBAC1B,aAAYA,EAAe,qCAE5B,IAA6B,CAA7BF,aAA6BC,EAAA,OAAA,eAAA,uCAG/BD,aAMEC,EAAA,OAAA,OAAA,OAHC,UAAYsB,EAAS,UACrB,OAAQA,EAAM,OACd,oBAAuBA,EAAmB"}
1
+ {"version":3,"file":"index-b_MgDylR.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","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","_createVNode","_renderSlot","_createElementVNode","_withKeys","_withModifiers","_createBlock","_mergeProps"],"mappings":"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"}