@dialpad/dialtone 9.28.0 → 9.29.1

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 (572) hide show
  1. package/dist/css/dialtone.css +2 -2
  2. package/dist/tokens/css/variables-cox-dark.css +1 -1
  3. package/dist/tokens/css/variables-cox-light.css +1 -1
  4. package/dist/tokens/css/variables-dark.css +1 -1
  5. package/dist/tokens/css/variables-light.css +1 -1
  6. package/dist/tokens/css/variables-tmo-dark.css +1 -1
  7. package/dist/tokens/css/variables-tmo-light.css +1 -1
  8. package/dist/tokens/less/variables-cox-dark.less +1 -1
  9. package/dist/tokens/less/variables-cox-light.less +1 -1
  10. package/dist/tokens/less/variables-dark.less +1 -1
  11. package/dist/tokens/less/variables-light.less +1 -1
  12. package/dist/tokens/less/variables-tmo-dark.less +1 -1
  13. package/dist/tokens/less/variables-tmo-light.less +1 -1
  14. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js +2 -0
  15. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js.map +1 -0
  16. package/dist/vue2/chunks/dropdown-zhMEz3bn.js +2 -0
  17. package/dist/vue2/chunks/dropdown-zhMEz3bn.js.map +1 -0
  18. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js +2 -0
  19. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js.map +1 -0
  20. package/dist/vue2/chunks/icon_constants-2S_OSQ1t.js +2 -0
  21. package/dist/vue2/chunks/icon_constants-2S_OSQ1t.js.map +1 -0
  22. package/dist/vue2/chunks/index-2jPosQBn.js +3 -0
  23. package/dist/vue2/chunks/index-2jPosQBn.js.map +1 -0
  24. package/dist/vue2/chunks/index-sdfB7Aok.js +2 -0
  25. package/dist/vue2/chunks/index-sdfB7Aok.js.map +1 -0
  26. package/dist/vue2/chunks/input-o-fc1X4b.js +2 -0
  27. package/dist/vue2/chunks/input-o-fc1X4b.js.map +1 -0
  28. package/dist/vue2/chunks/input_group-j2gTtc1C.js +2 -0
  29. package/dist/vue2/chunks/input_group-j2gTtc1C.js.map +1 -0
  30. package/dist/vue2/chunks/keyboard_list_navigation-N74Bpdq7.js +2 -0
  31. package/dist/vue2/chunks/keyboard_list_navigation-N74Bpdq7.js.map +1 -0
  32. package/dist/vue2/chunks/link_constants-Kn6kP4i1.js +2 -0
  33. package/dist/vue2/chunks/link_constants-Kn6kP4i1.js.map +1 -0
  34. package/dist/vue2/chunks/list_item_constants-Tsz5CO1m.js +2 -0
  35. package/dist/vue2/chunks/list_item_constants-Tsz5CO1m.js.map +1 -0
  36. package/dist/vue2/chunks/modal-qEzlo0Sj.js +2 -0
  37. package/dist/vue2/chunks/modal-qEzlo0Sj.js.map +1 -0
  38. package/dist/vue2/chunks/notice_action-u3ZKIhit.js +2 -0
  39. package/dist/vue2/chunks/notice_action-u3ZKIhit.js.map +1 -0
  40. package/dist/vue2/chunks/notice_constants-mC6al2Dm.js +2 -0
  41. package/dist/vue2/chunks/notice_constants-mC6al2Dm.js.map +1 -0
  42. package/dist/vue2/chunks/popover_constants-hOEhklvr.js +2 -0
  43. package/dist/vue2/chunks/popover_constants-hOEhklvr.js.map +1 -0
  44. package/dist/vue2/chunks/sr_only_close_button-ErijKGYR.js +3 -0
  45. package/dist/vue2/chunks/sr_only_close_button-ErijKGYR.js.map +1 -0
  46. package/dist/vue2/chunks/stack_constants-m9Ickqw0.js +2 -0
  47. package/dist/vue2/chunks/stack_constants-m9Ickqw0.js.map +1 -0
  48. package/dist/vue2/chunks/tab-7hJQSLFx.js +2 -0
  49. package/dist/vue2/chunks/tab-7hJQSLFx.js.map +1 -0
  50. package/dist/vue2/component-documentation.json +1 -1
  51. package/dist/vue2/dialtone-vue.cjs +2 -0
  52. package/dist/vue2/dialtone-vue.cjs.map +1 -0
  53. package/dist/vue2/lib/attachment-carousel.cjs +2 -0
  54. package/dist/vue2/lib/attachment-carousel.cjs.map +1 -0
  55. package/dist/vue2/lib/attachment-carousel.js +2 -3
  56. package/dist/vue2/lib/attachment-carousel.js.map +1 -1
  57. package/dist/vue2/lib/avatar.cjs +2 -0
  58. package/dist/vue2/lib/avatar.cjs.map +1 -0
  59. package/dist/vue2/lib/avatar.js +2 -3
  60. package/dist/vue2/lib/avatar.js.map +1 -1
  61. package/dist/vue2/lib/badge.cjs +2 -0
  62. package/dist/vue2/lib/badge.cjs.map +1 -0
  63. package/dist/vue2/lib/badge.js +2 -3
  64. package/dist/vue2/lib/badge.js.map +1 -1
  65. package/dist/vue2/lib/banner.cjs +3 -0
  66. package/dist/vue2/lib/banner.cjs.map +1 -0
  67. package/dist/vue2/lib/banner.js +2 -3
  68. package/dist/vue2/lib/banner.js.map +1 -1
  69. package/dist/vue2/lib/breadcrumbs.cjs +2 -0
  70. package/dist/vue2/lib/breadcrumbs.cjs.map +1 -0
  71. package/dist/vue2/lib/button-group.cjs +2 -0
  72. package/dist/vue2/lib/button-group.cjs.map +1 -0
  73. package/dist/vue2/lib/button.cjs +2 -0
  74. package/dist/vue2/lib/button.cjs.map +1 -0
  75. package/dist/vue2/lib/callbar-button-with-popover.cjs +2 -0
  76. package/dist/vue2/lib/callbar-button-with-popover.cjs.map +1 -0
  77. package/dist/vue2/lib/callbar-button-with-popover.js +2 -3
  78. package/dist/vue2/lib/callbar-button-with-popover.js.map +1 -1
  79. package/dist/vue2/lib/callbar-button.cjs +2 -0
  80. package/dist/vue2/lib/callbar-button.cjs.map +1 -0
  81. package/dist/vue2/lib/callbox.cjs +2 -0
  82. package/dist/vue2/lib/callbox.cjs.map +1 -0
  83. package/dist/vue2/lib/callbox.js +2 -3
  84. package/dist/vue2/lib/callbox.js.map +1 -1
  85. package/dist/vue2/lib/card.cjs +2 -0
  86. package/dist/vue2/lib/card.cjs.map +1 -0
  87. package/dist/vue2/lib/checkbox-group.cjs +2 -0
  88. package/dist/vue2/lib/checkbox-group.cjs.map +1 -0
  89. package/dist/vue2/lib/checkbox.cjs +2 -0
  90. package/dist/vue2/lib/checkbox.cjs.map +1 -0
  91. package/dist/vue2/lib/chip.cjs +2 -0
  92. package/dist/vue2/lib/chip.cjs.map +1 -0
  93. package/dist/vue2/lib/chip.js +2 -3
  94. package/dist/vue2/lib/chip.js.map +1 -1
  95. package/dist/vue2/lib/codeblock.cjs +3 -0
  96. package/dist/vue2/lib/codeblock.cjs.map +1 -0
  97. package/dist/vue2/lib/collapsible.cjs +2 -0
  98. package/dist/vue2/lib/collapsible.cjs.map +1 -0
  99. package/dist/vue2/lib/collapsible.js +2 -3
  100. package/dist/vue2/lib/collapsible.js.map +1 -1
  101. package/dist/vue2/lib/combobox-multi-select.cjs +2 -0
  102. package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -0
  103. package/dist/vue2/lib/combobox-with-popover.cjs +2 -0
  104. package/dist/vue2/lib/combobox-with-popover.cjs.map +1 -0
  105. package/dist/vue2/lib/combobox-with-popover.js +1 -1
  106. package/dist/vue2/lib/combobox.cjs +2 -0
  107. package/dist/vue2/lib/combobox.cjs.map +1 -0
  108. package/dist/vue2/lib/constants.cjs +2 -0
  109. package/dist/vue2/lib/constants.cjs.map +1 -0
  110. package/dist/vue2/lib/contact-info.cjs +2 -0
  111. package/dist/vue2/lib/contact-info.cjs.map +1 -0
  112. package/dist/vue2/lib/contact-info.js +2 -3
  113. package/dist/vue2/lib/contact-info.js.map +1 -1
  114. package/dist/vue2/lib/contact-row.cjs +2 -0
  115. package/dist/vue2/lib/contact-row.cjs.map +1 -0
  116. package/dist/vue2/lib/datepicker.cjs +2 -0
  117. package/dist/vue2/lib/datepicker.cjs.map +1 -0
  118. package/dist/vue2/lib/datepicker.js +12 -13
  119. package/dist/vue2/lib/datepicker.js.map +1 -1
  120. package/dist/vue2/lib/dates.cjs +2 -0
  121. package/dist/vue2/lib/dates.cjs.map +1 -0
  122. package/dist/vue2/lib/description-list.cjs +2 -0
  123. package/dist/vue2/lib/description-list.cjs.map +1 -0
  124. package/dist/vue2/lib/dropdown.cjs +2 -0
  125. package/dist/vue2/lib/dropdown.cjs.map +1 -0
  126. package/dist/vue2/lib/dropdown.js +6 -7
  127. package/dist/vue2/lib/dropdown.js.map +1 -1
  128. package/dist/vue2/lib/editor.cjs +2 -0
  129. package/dist/vue2/lib/editor.cjs.map +1 -0
  130. package/dist/vue2/lib/emoji-picker.cjs +2 -0
  131. package/dist/vue2/lib/emoji-picker.cjs.map +1 -0
  132. package/dist/vue2/lib/emoji-picker.js +2 -3
  133. package/dist/vue2/lib/emoji-picker.js.map +1 -1
  134. package/dist/vue2/lib/emoji-row.cjs +2 -0
  135. package/dist/vue2/lib/emoji-row.cjs.map +1 -0
  136. package/dist/vue2/lib/emoji-text-wrapper.cjs +2 -0
  137. package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -0
  138. package/dist/vue2/lib/emoji.cjs +2 -0
  139. package/dist/vue2/lib/emoji.cjs.map +1 -0
  140. package/dist/vue2/lib/feed-item-row.cjs +2 -0
  141. package/dist/vue2/lib/feed-item-row.cjs.map +1 -0
  142. package/dist/vue2/lib/feed-item-row.js +2 -3
  143. package/dist/vue2/lib/feed-item-row.js.map +1 -1
  144. package/dist/vue2/lib/feed-pill.cjs +2 -0
  145. package/dist/vue2/lib/feed-pill.cjs.map +1 -0
  146. package/dist/vue2/lib/feed-pill.js +2 -3
  147. package/dist/vue2/lib/feed-pill.js.map +1 -1
  148. package/dist/vue2/lib/general-row.cjs +2 -0
  149. package/dist/vue2/lib/general-row.cjs.map +1 -0
  150. package/dist/vue2/lib/group-row.cjs +2 -0
  151. package/dist/vue2/lib/group-row.cjs.map +1 -0
  152. package/dist/vue2/lib/group-row.js +1 -1
  153. package/dist/vue2/lib/grouped-chip.cjs +2 -0
  154. package/dist/vue2/lib/grouped-chip.cjs.map +1 -0
  155. package/dist/vue2/lib/grouped-chip.js +6 -7
  156. package/dist/vue2/lib/grouped-chip.js.map +1 -1
  157. package/dist/vue2/lib/hovercard.cjs +2 -0
  158. package/dist/vue2/lib/hovercard.cjs.map +1 -0
  159. package/dist/vue2/lib/hovercard.js +6 -7
  160. package/dist/vue2/lib/hovercard.js.map +1 -1
  161. package/dist/vue2/lib/icon.cjs +2 -0
  162. package/dist/vue2/lib/icon.cjs.map +1 -0
  163. package/dist/vue2/lib/icon.js +14 -38
  164. package/dist/vue2/lib/icon.js.map +1 -1
  165. package/dist/vue2/lib/image-viewer.cjs +2 -0
  166. package/dist/vue2/lib/image-viewer.cjs.map +1 -0
  167. package/dist/vue2/lib/image-viewer.js +11 -12
  168. package/dist/vue2/lib/image-viewer.js.map +1 -1
  169. package/dist/vue2/lib/input-group.cjs +2 -0
  170. package/dist/vue2/lib/input-group.cjs.map +1 -0
  171. package/dist/vue2/lib/input.cjs +2 -0
  172. package/dist/vue2/lib/input.cjs.map +1 -0
  173. package/dist/vue2/lib/item-layout.cjs +2 -0
  174. package/dist/vue2/lib/item-layout.cjs.map +1 -0
  175. package/dist/vue2/lib/ivr-node.cjs +2 -0
  176. package/dist/vue2/lib/ivr-node.cjs.map +1 -0
  177. package/dist/vue2/lib/ivr-node.js +4 -5
  178. package/dist/vue2/lib/ivr-node.js.map +1 -1
  179. package/dist/vue2/lib/keyboard-shortcut.cjs +2 -0
  180. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -0
  181. package/dist/vue2/lib/keyboard-shortcut.js +4 -5
  182. package/dist/vue2/lib/keyboard-shortcut.js.map +1 -1
  183. package/dist/vue2/lib/lazy-show.cjs +2 -0
  184. package/dist/vue2/lib/lazy-show.cjs.map +1 -0
  185. package/dist/vue2/lib/link.cjs +2 -0
  186. package/dist/vue2/lib/link.cjs.map +1 -0
  187. package/dist/vue2/lib/list-item-group.cjs +2 -0
  188. package/dist/vue2/lib/list-item-group.cjs.map +1 -0
  189. package/dist/vue2/lib/list-item.cjs +2 -0
  190. package/dist/vue2/lib/list-item.cjs.map +1 -0
  191. package/dist/vue2/lib/list-item.js +2 -3
  192. package/dist/vue2/lib/list-item.js.map +1 -1
  193. package/dist/vue2/lib/message-input.cjs +2 -0
  194. package/dist/vue2/lib/message-input.cjs.map +1 -0
  195. package/dist/vue2/lib/message-input.js +89 -47
  196. package/dist/vue2/lib/message-input.js.map +1 -1
  197. package/dist/vue2/lib/mixins.cjs +2 -0
  198. package/dist/vue2/lib/mixins.cjs.map +1 -0
  199. package/dist/vue2/lib/modal.cjs +3 -0
  200. package/dist/vue2/lib/modal.cjs.map +1 -0
  201. package/dist/vue2/lib/modal.js +10 -11
  202. package/dist/vue2/lib/modal.js.map +1 -1
  203. package/dist/vue2/lib/notice.cjs +2 -0
  204. package/dist/vue2/lib/notice.cjs.map +1 -0
  205. package/dist/vue2/lib/notice.js +2 -3
  206. package/dist/vue2/lib/notice.js.map +1 -1
  207. package/dist/vue2/lib/pagination.cjs +2 -0
  208. package/dist/vue2/lib/pagination.cjs.map +1 -0
  209. package/dist/vue2/lib/pagination.js +2 -3
  210. package/dist/vue2/lib/pagination.js.map +1 -1
  211. package/dist/vue2/lib/popover.cjs +2 -0
  212. package/dist/vue2/lib/popover.cjs.map +1 -0
  213. package/dist/vue2/lib/popover.js +4 -5
  214. package/dist/vue2/lib/popover.js.map +1 -1
  215. package/dist/vue2/lib/presence.cjs +2 -0
  216. package/dist/vue2/lib/presence.cjs.map +1 -0
  217. package/dist/vue2/lib/radio-group.cjs +2 -0
  218. package/dist/vue2/lib/radio-group.cjs.map +1 -0
  219. package/dist/vue2/lib/radio.cjs +2 -0
  220. package/dist/vue2/lib/radio.cjs.map +1 -0
  221. package/dist/vue2/lib/rich-text-editor.cjs +2 -0
  222. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -0
  223. package/dist/vue2/lib/rich-text-editor.js +106 -74
  224. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  225. package/dist/vue2/lib/root-layout.cjs +2 -0
  226. package/dist/vue2/lib/root-layout.cjs.map +1 -0
  227. package/dist/vue2/lib/select-menu.cjs +2 -0
  228. package/dist/vue2/lib/select-menu.cjs.map +1 -0
  229. package/dist/vue2/lib/settings-menu-button.cjs +2 -0
  230. package/dist/vue2/lib/settings-menu-button.cjs.map +1 -0
  231. package/dist/vue2/lib/settings-menu-button.js +2 -3
  232. package/dist/vue2/lib/settings-menu-button.js.map +1 -1
  233. package/dist/vue2/lib/skeleton.cjs +2 -0
  234. package/dist/vue2/lib/skeleton.cjs.map +1 -0
  235. package/dist/vue2/lib/stack.cjs +2 -0
  236. package/dist/vue2/lib/stack.cjs.map +1 -0
  237. package/dist/vue2/lib/tabs.cjs +2 -0
  238. package/dist/vue2/lib/tabs.cjs.map +1 -0
  239. package/dist/vue2/lib/time-pill.cjs +2 -0
  240. package/dist/vue2/lib/time-pill.cjs.map +1 -0
  241. package/dist/vue2/lib/toast.cjs +2 -0
  242. package/dist/vue2/lib/toast.cjs.map +1 -0
  243. package/dist/vue2/lib/toast.js +2 -3
  244. package/dist/vue2/lib/toast.js.map +1 -1
  245. package/dist/vue2/lib/toggle.cjs +2 -0
  246. package/dist/vue2/lib/toggle.cjs.map +1 -0
  247. package/dist/vue2/lib/tooltip-directive.cjs +2 -0
  248. package/dist/vue2/lib/tooltip-directive.cjs.map +1 -0
  249. package/dist/vue2/lib/tooltip.cjs +2 -0
  250. package/dist/vue2/lib/tooltip.cjs.map +1 -0
  251. package/dist/vue2/lib/top-banner-info.cjs +2 -0
  252. package/dist/vue2/lib/top-banner-info.cjs.map +1 -0
  253. package/dist/vue2/lib/unread-pill.cjs +2 -0
  254. package/dist/vue2/lib/unread-pill.cjs.map +1 -0
  255. package/dist/vue2/lib/unread-pill.js +3 -4
  256. package/dist/vue2/lib/unread-pill.js.map +1 -1
  257. package/dist/vue2/lib/utils.cjs +2 -0
  258. package/dist/vue2/lib/utils.cjs.map +1 -0
  259. package/dist/vue2/lib/validation-messages.cjs +2 -0
  260. package/dist/vue2/lib/validation-messages.cjs.map +1 -0
  261. package/dist/vue2/lib/validators.cjs +2 -0
  262. package/dist/vue2/lib/validators.cjs.map +1 -0
  263. package/dist/vue2/style.css +1 -1
  264. package/dist/vue2/types/components/avatar/avatar.vue.d.ts +1 -1
  265. package/dist/vue2/types/components/button/button.vue.d.ts +2 -2
  266. package/dist/vue2/types/components/card/card.vue.d.ts +1 -1
  267. package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
  268. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts +2 -2
  269. package/dist/vue2/types/components/combobox/combobox.vue.d.ts +1 -1
  270. package/dist/vue2/types/components/dropdown/dropdown.vue.d.ts +1 -1
  271. package/dist/vue2/types/components/emoji/emoji.vue.d.ts +1 -1
  272. package/dist/vue2/types/components/icon/icon.vue.d.ts +2 -22
  273. package/dist/vue2/types/components/icon/icon.vue.d.ts.map +1 -1
  274. package/dist/vue2/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  275. package/dist/vue2/types/components/modal/modal.vue.d.ts +2 -2
  276. package/dist/vue2/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  277. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +91 -1
  278. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  279. package/dist/vue2/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  280. package/dist/vue2/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  281. package/dist/vue2/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  282. package/dist/vue2/types/components/skeleton/skeleton-text.vue.d.ts +2 -2
  283. package/dist/vue2/types/components/skeleton/skeleton.vue.d.ts +1 -1
  284. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +2 -2
  285. package/dist/vue2/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  286. package/dist/vue2/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  287. package/dist/vue2/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  288. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +90 -0
  289. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  290. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  291. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  292. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js +2 -0
  293. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +1 -0
  294. package/dist/vue3/chunks/dropdown-UO3UJalk.js +2 -0
  295. package/dist/vue3/chunks/dropdown-UO3UJalk.js.map +1 -0
  296. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js +2 -0
  297. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js.map +1 -0
  298. package/dist/vue3/chunks/icon_constants-2S_OSQ1t.js +2 -0
  299. package/dist/vue3/chunks/icon_constants-2S_OSQ1t.js.map +1 -0
  300. package/dist/vue3/chunks/index-6tYeqbgP.js +3 -0
  301. package/dist/vue3/chunks/index-6tYeqbgP.js.map +1 -0
  302. package/dist/vue3/chunks/index-IBtQ5jRJ.js +2 -0
  303. package/dist/vue3/chunks/index-IBtQ5jRJ.js.map +1 -0
  304. package/dist/vue3/chunks/input-0Uksk4DP.js +2 -0
  305. package/dist/vue3/chunks/input-0Uksk4DP.js.map +1 -0
  306. package/dist/vue3/chunks/input_group-AS760Cp7.js +2 -0
  307. package/dist/vue3/chunks/input_group-AS760Cp7.js.map +1 -0
  308. package/dist/vue3/chunks/keyboard_list_navigation-N74Bpdq7.js +2 -0
  309. package/dist/vue3/chunks/keyboard_list_navigation-N74Bpdq7.js.map +1 -0
  310. package/dist/vue3/chunks/link_constants-Kn6kP4i1.js +2 -0
  311. package/dist/vue3/chunks/link_constants-Kn6kP4i1.js.map +1 -0
  312. package/dist/vue3/chunks/list_item_constants-Tsz5CO1m.js +2 -0
  313. package/dist/vue3/chunks/list_item_constants-Tsz5CO1m.js.map +1 -0
  314. package/dist/vue3/chunks/modal-qEzlo0Sj.js +2 -0
  315. package/dist/vue3/chunks/modal-qEzlo0Sj.js.map +1 -0
  316. package/dist/vue3/chunks/notice_action-jO199emq.js +2 -0
  317. package/dist/vue3/chunks/notice_action-jO199emq.js.map +1 -0
  318. package/dist/vue3/chunks/notice_constants-mC6al2Dm.js +2 -0
  319. package/dist/vue3/chunks/notice_constants-mC6al2Dm.js.map +1 -0
  320. package/dist/vue3/chunks/popover_constants-hOEhklvr.js +2 -0
  321. package/dist/vue3/chunks/popover_constants-hOEhklvr.js.map +1 -0
  322. package/dist/vue3/chunks/sr_only_close_button-iD7s1Pbj.js +3 -0
  323. package/dist/vue3/chunks/sr_only_close_button-iD7s1Pbj.js.map +1 -0
  324. package/dist/vue3/chunks/stack_constants-m9Ickqw0.js +2 -0
  325. package/dist/vue3/chunks/stack_constants-m9Ickqw0.js.map +1 -0
  326. package/dist/vue3/chunks/tab-at7WWglk.js +2 -0
  327. package/dist/vue3/chunks/tab-at7WWglk.js.map +1 -0
  328. package/dist/vue3/component-documentation.json +1 -1
  329. package/dist/vue3/dialtone-vue.cjs +2 -0
  330. package/dist/vue3/dialtone-vue.cjs.map +1 -0
  331. package/dist/vue3/lib/attachment-carousel.cjs +2 -0
  332. package/dist/vue3/lib/attachment-carousel.cjs.map +1 -0
  333. package/dist/vue3/lib/attachment-carousel.js +2 -3
  334. package/dist/vue3/lib/attachment-carousel.js.map +1 -1
  335. package/dist/vue3/lib/avatar.cjs +2 -0
  336. package/dist/vue3/lib/avatar.cjs.map +1 -0
  337. package/dist/vue3/lib/avatar.js +2 -3
  338. package/dist/vue3/lib/avatar.js.map +1 -1
  339. package/dist/vue3/lib/badge.cjs +2 -0
  340. package/dist/vue3/lib/badge.cjs.map +1 -0
  341. package/dist/vue3/lib/badge.js +2 -3
  342. package/dist/vue3/lib/badge.js.map +1 -1
  343. package/dist/vue3/lib/banner.cjs +3 -0
  344. package/dist/vue3/lib/banner.cjs.map +1 -0
  345. package/dist/vue3/lib/banner.js +6 -7
  346. package/dist/vue3/lib/banner.js.map +1 -1
  347. package/dist/vue3/lib/breadcrumbs.cjs +2 -0
  348. package/dist/vue3/lib/breadcrumbs.cjs.map +1 -0
  349. package/dist/vue3/lib/button-group.cjs +2 -0
  350. package/dist/vue3/lib/button-group.cjs.map +1 -0
  351. package/dist/vue3/lib/button.cjs +2 -0
  352. package/dist/vue3/lib/button.cjs.map +1 -0
  353. package/dist/vue3/lib/callbar-button-with-popover.cjs +2 -0
  354. package/dist/vue3/lib/callbar-button-with-popover.cjs.map +1 -0
  355. package/dist/vue3/lib/callbar-button-with-popover.js +9 -10
  356. package/dist/vue3/lib/callbar-button-with-popover.js.map +1 -1
  357. package/dist/vue3/lib/callbar-button.cjs +2 -0
  358. package/dist/vue3/lib/callbar-button.cjs.map +1 -0
  359. package/dist/vue3/lib/callbox.cjs +2 -0
  360. package/dist/vue3/lib/callbox.cjs.map +1 -0
  361. package/dist/vue3/lib/callbox.js +2 -3
  362. package/dist/vue3/lib/callbox.js.map +1 -1
  363. package/dist/vue3/lib/card.cjs +2 -0
  364. package/dist/vue3/lib/card.cjs.map +1 -0
  365. package/dist/vue3/lib/checkbox-group.cjs +2 -0
  366. package/dist/vue3/lib/checkbox-group.cjs.map +1 -0
  367. package/dist/vue3/lib/checkbox.cjs +2 -0
  368. package/dist/vue3/lib/checkbox.cjs.map +1 -0
  369. package/dist/vue3/lib/chip.cjs +2 -0
  370. package/dist/vue3/lib/chip.cjs.map +1 -0
  371. package/dist/vue3/lib/chip.js +10 -11
  372. package/dist/vue3/lib/chip.js.map +1 -1
  373. package/dist/vue3/lib/codeblock.cjs +3 -0
  374. package/dist/vue3/lib/codeblock.cjs.map +1 -0
  375. package/dist/vue3/lib/collapsible.cjs +2 -0
  376. package/dist/vue3/lib/collapsible.cjs.map +1 -0
  377. package/dist/vue3/lib/collapsible.js +7 -8
  378. package/dist/vue3/lib/collapsible.js.map +1 -1
  379. package/dist/vue3/lib/combobox-multi-select.cjs +2 -0
  380. package/dist/vue3/lib/combobox-multi-select.cjs.map +1 -0
  381. package/dist/vue3/lib/combobox-with-popover.cjs +2 -0
  382. package/dist/vue3/lib/combobox-with-popover.cjs.map +1 -0
  383. package/dist/vue3/lib/combobox.cjs +2 -0
  384. package/dist/vue3/lib/combobox.cjs.map +1 -0
  385. package/dist/vue3/lib/constants.cjs +2 -0
  386. package/dist/vue3/lib/constants.cjs.map +1 -0
  387. package/dist/vue3/lib/contact-info.cjs +2 -0
  388. package/dist/vue3/lib/contact-info.cjs.map +1 -0
  389. package/dist/vue3/lib/contact-info.js +2 -3
  390. package/dist/vue3/lib/contact-info.js.map +1 -1
  391. package/dist/vue3/lib/contact-row.cjs +2 -0
  392. package/dist/vue3/lib/contact-row.cjs.map +1 -0
  393. package/dist/vue3/lib/datepicker.cjs +2 -0
  394. package/dist/vue3/lib/datepicker.cjs.map +1 -0
  395. package/dist/vue3/lib/datepicker.js +12 -13
  396. package/dist/vue3/lib/datepicker.js.map +1 -1
  397. package/dist/vue3/lib/dates.cjs +2 -0
  398. package/dist/vue3/lib/dates.cjs.map +1 -0
  399. package/dist/vue3/lib/description-list.cjs +2 -0
  400. package/dist/vue3/lib/description-list.cjs.map +1 -0
  401. package/dist/vue3/lib/dropdown.cjs +2 -0
  402. package/dist/vue3/lib/dropdown.cjs.map +1 -0
  403. package/dist/vue3/lib/dropdown.js +6 -7
  404. package/dist/vue3/lib/dropdown.js.map +1 -1
  405. package/dist/vue3/lib/editor.cjs +2 -0
  406. package/dist/vue3/lib/editor.cjs.map +1 -0
  407. package/dist/vue3/lib/emoji-picker.cjs +2 -0
  408. package/dist/vue3/lib/emoji-picker.cjs.map +1 -0
  409. package/dist/vue3/lib/emoji-picker.js +2 -3
  410. package/dist/vue3/lib/emoji-picker.js.map +1 -1
  411. package/dist/vue3/lib/emoji-row.cjs +2 -0
  412. package/dist/vue3/lib/emoji-row.cjs.map +1 -0
  413. package/dist/vue3/lib/emoji-text-wrapper.cjs +2 -0
  414. package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -0
  415. package/dist/vue3/lib/emoji.cjs +2 -0
  416. package/dist/vue3/lib/emoji.cjs.map +1 -0
  417. package/dist/vue3/lib/feed-item-row.cjs +2 -0
  418. package/dist/vue3/lib/feed-item-row.cjs.map +1 -0
  419. package/dist/vue3/lib/feed-item-row.js +11 -12
  420. package/dist/vue3/lib/feed-item-row.js.map +1 -1
  421. package/dist/vue3/lib/feed-pill.cjs +2 -0
  422. package/dist/vue3/lib/feed-pill.cjs.map +1 -0
  423. package/dist/vue3/lib/feed-pill.js +2 -3
  424. package/dist/vue3/lib/feed-pill.js.map +1 -1
  425. package/dist/vue3/lib/general-row.cjs +2 -0
  426. package/dist/vue3/lib/general-row.cjs.map +1 -0
  427. package/dist/vue3/lib/group-row.cjs +2 -0
  428. package/dist/vue3/lib/group-row.cjs.map +1 -0
  429. package/dist/vue3/lib/group-row.js +1 -1
  430. package/dist/vue3/lib/grouped-chip.cjs +2 -0
  431. package/dist/vue3/lib/grouped-chip.cjs.map +1 -0
  432. package/dist/vue3/lib/grouped-chip.js +5 -6
  433. package/dist/vue3/lib/grouped-chip.js.map +1 -1
  434. package/dist/vue3/lib/hovercard.cjs +2 -0
  435. package/dist/vue3/lib/hovercard.cjs.map +1 -0
  436. package/dist/vue3/lib/hovercard.js +7 -8
  437. package/dist/vue3/lib/hovercard.js.map +1 -1
  438. package/dist/vue3/lib/icon.cjs +2 -0
  439. package/dist/vue3/lib/icon.cjs.map +1 -0
  440. package/dist/vue3/lib/icon.js +20 -51
  441. package/dist/vue3/lib/icon.js.map +1 -1
  442. package/dist/vue3/lib/image-viewer.cjs +2 -0
  443. package/dist/vue3/lib/image-viewer.cjs.map +1 -0
  444. package/dist/vue3/lib/image-viewer.js +9 -10
  445. package/dist/vue3/lib/image-viewer.js.map +1 -1
  446. package/dist/vue3/lib/input-group.cjs +2 -0
  447. package/dist/vue3/lib/input-group.cjs.map +1 -0
  448. package/dist/vue3/lib/input.cjs +2 -0
  449. package/dist/vue3/lib/input.cjs.map +1 -0
  450. package/dist/vue3/lib/item-layout.cjs +2 -0
  451. package/dist/vue3/lib/item-layout.cjs.map +1 -0
  452. package/dist/vue3/lib/ivr-node.cjs +2 -0
  453. package/dist/vue3/lib/ivr-node.cjs.map +1 -0
  454. package/dist/vue3/lib/ivr-node.js +4 -5
  455. package/dist/vue3/lib/ivr-node.js.map +1 -1
  456. package/dist/vue3/lib/keyboard-shortcut.cjs +2 -0
  457. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -0
  458. package/dist/vue3/lib/keyboard-shortcut.js +4 -5
  459. package/dist/vue3/lib/keyboard-shortcut.js.map +1 -1
  460. package/dist/vue3/lib/lazy-show.cjs +2 -0
  461. package/dist/vue3/lib/lazy-show.cjs.map +1 -0
  462. package/dist/vue3/lib/link.cjs +2 -0
  463. package/dist/vue3/lib/link.cjs.map +1 -0
  464. package/dist/vue3/lib/list-item-group.cjs +2 -0
  465. package/dist/vue3/lib/list-item-group.cjs.map +1 -0
  466. package/dist/vue3/lib/list-item.cjs +2 -0
  467. package/dist/vue3/lib/list-item.cjs.map +1 -0
  468. package/dist/vue3/lib/list-item.js +2 -3
  469. package/dist/vue3/lib/list-item.js.map +1 -1
  470. package/dist/vue3/lib/message-input.cjs +2 -0
  471. package/dist/vue3/lib/message-input.cjs.map +1 -0
  472. package/dist/vue3/lib/message-input.js +148 -100
  473. package/dist/vue3/lib/message-input.js.map +1 -1
  474. package/dist/vue3/lib/mixins.cjs +2 -0
  475. package/dist/vue3/lib/mixins.cjs.map +1 -0
  476. package/dist/vue3/lib/modal.cjs +3 -0
  477. package/dist/vue3/lib/modal.cjs.map +1 -0
  478. package/dist/vue3/lib/modal.js +11 -12
  479. package/dist/vue3/lib/modal.js.map +1 -1
  480. package/dist/vue3/lib/notice.cjs +2 -0
  481. package/dist/vue3/lib/notice.cjs.map +1 -0
  482. package/dist/vue3/lib/notice.js +2 -3
  483. package/dist/vue3/lib/notice.js.map +1 -1
  484. package/dist/vue3/lib/pagination.cjs +2 -0
  485. package/dist/vue3/lib/pagination.cjs.map +1 -0
  486. package/dist/vue3/lib/pagination.js +2 -3
  487. package/dist/vue3/lib/pagination.js.map +1 -1
  488. package/dist/vue3/lib/popover.cjs +2 -0
  489. package/dist/vue3/lib/popover.cjs.map +1 -0
  490. package/dist/vue3/lib/popover.js +4 -5
  491. package/dist/vue3/lib/popover.js.map +1 -1
  492. package/dist/vue3/lib/presence.cjs +2 -0
  493. package/dist/vue3/lib/presence.cjs.map +1 -0
  494. package/dist/vue3/lib/radio-group.cjs +2 -0
  495. package/dist/vue3/lib/radio-group.cjs.map +1 -0
  496. package/dist/vue3/lib/radio.cjs +2 -0
  497. package/dist/vue3/lib/radio.cjs.map +1 -0
  498. package/dist/vue3/lib/rich-text-editor.cjs +2 -0
  499. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -0
  500. package/dist/vue3/lib/rich-text-editor.js +174 -142
  501. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  502. package/dist/vue3/lib/root-layout.cjs +2 -0
  503. package/dist/vue3/lib/root-layout.cjs.map +1 -0
  504. package/dist/vue3/lib/scroller.cjs +2 -0
  505. package/dist/vue3/lib/scroller.cjs.map +1 -0
  506. package/dist/vue3/lib/select-menu.cjs +2 -0
  507. package/dist/vue3/lib/select-menu.cjs.map +1 -0
  508. package/dist/vue3/lib/settings-menu-button.cjs +2 -0
  509. package/dist/vue3/lib/settings-menu-button.cjs.map +1 -0
  510. package/dist/vue3/lib/settings-menu-button.js +2 -3
  511. package/dist/vue3/lib/settings-menu-button.js.map +1 -1
  512. package/dist/vue3/lib/skeleton.cjs +2 -0
  513. package/dist/vue3/lib/skeleton.cjs.map +1 -0
  514. package/dist/vue3/lib/stack.cjs +2 -0
  515. package/dist/vue3/lib/stack.cjs.map +1 -0
  516. package/dist/vue3/lib/tabs.cjs +2 -0
  517. package/dist/vue3/lib/tabs.cjs.map +1 -0
  518. package/dist/vue3/lib/time-pill.cjs +2 -0
  519. package/dist/vue3/lib/time-pill.cjs.map +1 -0
  520. package/dist/vue3/lib/toast.cjs +2 -0
  521. package/dist/vue3/lib/toast.cjs.map +1 -0
  522. package/dist/vue3/lib/toast.js +2 -3
  523. package/dist/vue3/lib/toast.js.map +1 -1
  524. package/dist/vue3/lib/toggle.cjs +2 -0
  525. package/dist/vue3/lib/toggle.cjs.map +1 -0
  526. package/dist/vue3/lib/tooltip-directive.cjs +2 -0
  527. package/dist/vue3/lib/tooltip-directive.cjs.map +1 -0
  528. package/dist/vue3/lib/tooltip.cjs +2 -0
  529. package/dist/vue3/lib/tooltip.cjs.map +1 -0
  530. package/dist/vue3/lib/top-banner-info.cjs +2 -0
  531. package/dist/vue3/lib/top-banner-info.cjs.map +1 -0
  532. package/dist/vue3/lib/unread-pill.cjs +2 -0
  533. package/dist/vue3/lib/unread-pill.cjs.map +1 -0
  534. package/dist/vue3/lib/unread-pill.js +2 -3
  535. package/dist/vue3/lib/unread-pill.js.map +1 -1
  536. package/dist/vue3/lib/utils.cjs +2 -0
  537. package/dist/vue3/lib/utils.cjs.map +1 -0
  538. package/dist/vue3/lib/validation-messages.cjs +2 -0
  539. package/dist/vue3/lib/validation-messages.cjs.map +1 -0
  540. package/dist/vue3/lib/validators.cjs +2 -0
  541. package/dist/vue3/lib/validators.cjs.map +1 -0
  542. package/dist/vue3/style.css +1 -1
  543. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +1 -1
  544. package/dist/vue3/types/components/button/button.vue.d.ts +2 -2
  545. package/dist/vue3/types/components/card/card.vue.d.ts +1 -1
  546. package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
  547. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +2 -2
  548. package/dist/vue3/types/components/combobox/combobox.vue.d.ts +1 -1
  549. package/dist/vue3/types/components/dropdown/dropdown.vue.d.ts +1 -1
  550. package/dist/vue3/types/components/emoji/emoji.vue.d.ts +1 -1
  551. package/dist/vue3/types/components/icon/icon.vue.d.ts +1 -19
  552. package/dist/vue3/types/components/icon/icon.vue.d.ts.map +1 -1
  553. package/dist/vue3/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  554. package/dist/vue3/types/components/modal/modal.vue.d.ts +2 -2
  555. package/dist/vue3/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  556. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +91 -1
  557. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  558. package/dist/vue3/types/components/root_layout/root_layout.vue.d.ts +1 -1
  559. package/dist/vue3/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  560. package/dist/vue3/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  561. package/dist/vue3/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  562. package/dist/vue3/types/components/skeleton/skeleton-text.vue.d.ts +2 -2
  563. package/dist/vue3/types/components/skeleton/skeleton.vue.d.ts +1 -1
  564. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +2 -2
  565. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  566. package/dist/vue3/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  567. package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  568. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +90 -0
  569. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  570. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  571. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  572. package/package.json +20 -9
@@ -7471,7 +7471,7 @@ body {
7471
7471
  }
7472
7472
  /**
7473
7473
  * Do not edit directly
7474
- * Generated on Tue, 09 Apr 2024 16:54:15 GMT
7474
+ * Generated on Thu, 11 Apr 2024 22:51:39 GMT
7475
7475
  */
7476
7476
 
7477
7477
  .dialtone-theme-light {
@@ -8288,7 +8288,7 @@ body {
8288
8288
 
8289
8289
  /**
8290
8290
  * Do not edit directly
8291
- * Generated on Tue, 09 Apr 2024 16:54:15 GMT
8291
+ * Generated on Thu, 11 Apr 2024 22:51:39 GMT
8292
8292
  */
8293
8293
 
8294
8294
  .dialtone-theme-dark {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Tue, 09 Apr 2024 16:54:16 GMT
3
+ * Generated on Thu, 11 Apr 2024 22:51:40 GMT
4
4
  */
5
5
 
6
6
  .dialtone-theme-cox-dark {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Tue, 09 Apr 2024 16:54:16 GMT
3
+ * Generated on Thu, 11 Apr 2024 22:51:40 GMT
4
4
  */
5
5
 
6
6
  .dialtone-theme-cox-light {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Tue, 09 Apr 2024 16:54:15 GMT
3
+ * Generated on Thu, 11 Apr 2024 22:51:39 GMT
4
4
  */
5
5
 
6
6
  .dialtone-theme-dark {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Tue, 09 Apr 2024 16:54:15 GMT
3
+ * Generated on Thu, 11 Apr 2024 22:51:39 GMT
4
4
  */
5
5
 
6
6
  .dialtone-theme-light {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Tue, 09 Apr 2024 16:54:16 GMT
3
+ * Generated on Thu, 11 Apr 2024 22:51:39 GMT
4
4
  */
5
5
 
6
6
  .dialtone-theme-tmo-dark {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Tue, 09 Apr 2024 16:54:16 GMT
3
+ * Generated on Thu, 11 Apr 2024 22:51:39 GMT
4
4
  */
5
5
 
6
6
  .dialtone-theme-tmo-light {
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Tue, 09 Apr 2024 16:54:17 GMT
3
+ // Generated on Thu, 11 Apr 2024 22:51:40 GMT
4
4
 
5
5
  @dt-font-size-100: 1.2rem; // small
6
6
  @dt-font-size-200: 1.5rem; // medium / base
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Tue, 09 Apr 2024 16:54:16 GMT
3
+ // Generated on Thu, 11 Apr 2024 22:51:40 GMT
4
4
 
5
5
  @dt-font-size-100: 1.2rem; // small
6
6
  @dt-font-size-200: 1.5rem; // medium / base
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Tue, 09 Apr 2024 16:54:15 GMT
3
+ // Generated on Thu, 11 Apr 2024 22:51:39 GMT
4
4
 
5
5
  @dt-font-size-100: 1.2rem; // small
6
6
  @dt-font-size-200: 1.5rem; // medium / base
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Tue, 09 Apr 2024 16:54:15 GMT
3
+ // Generated on Thu, 11 Apr 2024 22:51:39 GMT
4
4
 
5
5
  @dt-font-size-100: 1.2rem; // small
6
6
  @dt-font-size-200: 1.5rem; // medium / base
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Tue, 09 Apr 2024 16:54:16 GMT
3
+ // Generated on Thu, 11 Apr 2024 22:51:40 GMT
4
4
 
5
5
  @dt-font-size-100: 1.2rem; // small
6
6
  @dt-font-size-200: 1.5rem; // medium / base
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Tue, 09 Apr 2024 16:54:16 GMT
3
+ // Generated on Thu, 11 Apr 2024 22:51:39 GMT
4
4
 
5
5
  @dt-font-size-100: 1.2rem; // small
6
6
  @dt-font-size-200: 1.5rem; // medium / base
@@ -0,0 +1,2 @@
1
+ "use strict";function v(r,t,d,u,i,a,f,h){var e=typeof r=="function"?r.options:r;t&&(e.render=t,e.staticRenderFns=d,e._compiled=!0),u&&(e.functional=!0),a&&(e._scopeId="data-v-"+a);var o;if(f?(o=function(n){n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!n&&typeof __VUE_SSR_CONTEXT__<"u"&&(n=__VUE_SSR_CONTEXT__),i&&i.call(this,n),n&&n._registeredComponents&&n._registeredComponents.add(f)},e._ssrRegister=o):i&&(o=h?function(){i.call(this,(e.functional?this.parent:this).$root.$options.shadowRoot)}:i),o)if(e.functional){e._injectStyles=o;var l=e.render;e.render=function(p,_){return o.call(_),l(p,_)}}else{var s=e.beforeCreate;e.beforeCreate=s?[].concat(s,o):[o]}return{exports:r,options:e}}exports.n=v;
2
+ //# sourceMappingURL=_plugin-vue2_normalizer-ZK80B3OL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue2_normalizer-ZK80B3OL.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";const l=require("./keyboard_list_navigation-N74Bpdq7.js"),o=require("./dropdown_constants-KHFvVI2L.js"),h=require("../lib/utils.cjs"),n=require("../lib/constants.cjs"),a=require("./sr_only_close_button-ErijKGYR.js"),d=require("./_plugin-vue2_normalizer-ZK80B3OL.js"),u=require("../lib/popover.cjs"),r=require("./list_item_constants-Tsz5CO1m.js"),p=require("./popover_constants-hOEhklvr.js"),g={name:"DtDropdown",components:{DtPopover:u.DtPopover,SrOnlyCloseButton:a.S},mixins:[l.K({indexKey:"highlightIndex",idKey:"highlightId",listElementKey:"getListElement",listItemRole:"menuitem",afterHighlightMethod:"afterHighlight",beginningOfListMethod:"beginningOfListMethod",endOfListMethod:"endOfListMethod",activeItemKey:"activeItemEl",focusOnKeyboardNavigation:!0}),a.a],props:{open:{type:Boolean,default:null},openOnContext:{type:Boolean,default:!1},padding:{type:String,default:"small",validator:t=>Object.keys(o.D).some(e=>e===t)},modal:{type:Boolean,default:!0},contentWidth:{type:String,default:null},maxHeight:{type:String,default:""},maxWidth:{type:String,default:""},listId:{type:String,default(){return h.getUniqueString()}},navigationType:{type:String,default:r.a.ARROW_KEYS,validator:t=>Object.values(r.a).includes(t)},fallbackPlacements:{type:Array,default:()=>["auto"]},placement:{type:String,default:"bottom"},onBeginningOfList:{type:Function,default:null},onEndOfList:{type:Function,default:null},listClass:{type:[String,Array,Object],default:""},appendTo:{type:[HTMLElement,String],default:"body",validator:t=>p.e.includes(t)||t instanceof HTMLElement},tether:{type:Boolean,default:!0},transition:{type:String,default:"fade"}},emits:["highlight","opened","update:open"],data(){return{LIST_ITEM_NAVIGATION_TYPES:r.a,DROPDOWN_PADDING_CLASSES:o.D,EVENT_KEYNAMES:n.EVENT_KEYNAMES,openedWithKeyboard:!1,isOpen:null}},computed:{dropdownListeners(){return{...this.$listeners,opened:t=>{this.updateInitialHighlightIndex(t)},keydown:t=>{switch(t.code){case n.EVENT_KEYNAMES.up:case n.EVENT_KEYNAMES.arrowup:this.onUpKeyPress(t),t.stopPropagation(),t.preventDefault();break;case n.EVENT_KEYNAMES.down:case n.EVENT_KEYNAMES.arrowdown:this.onDownKeyPress(t),t.stopPropagation(),t.preventDefault();break;case n.EVENT_KEYNAMES.space:case n.EVENT_KEYNAMES.spacebar:this.onSpaceKey();break;case n.EVENT_KEYNAMES.enter:this.onEnterKey();break;case n.EVENT_KEYNAMES.home:this.onHomeKeyPress(t),t.stopPropagation(),t.preventDefault();break;case n.EVENT_KEYNAMES.end:this.onEndKeyPress(t),t.stopPropagation(),t.preventDefault();break;default:this.onKeyPress(t);break}this.$emit("keydown",t)}}},beginningOfListMethod(){return this.onBeginningOfList||this.jumpToEnd},endOfListMethod(){return this.onEndOfList||this.jumpToBeginning},activeItemEl(){return this.getListElement().querySelector("#"+this.highlightId)},isArrowKeyNav(){return this.navigationType===this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS},listClasses(){return["d-dropdown-list",o.D[this.padding],this.listClass,{"d-context-menu-list":this.openOnContext}]},shouldOpenWithArrowKeys(){return!this.openOnContext}},methods:{onMouseHighlight(t){const e=t.target.closest("li");e&&e.role&&this.highlightId!==e.id&&(this.setHighlightId(e.id),e.focus())},getListElement(){return this.$refs.listWrapper},clearHighlightIndex(){this.setHighlightIndex(-1)},afterHighlight(){this.visuallyHiddenClose&&this.highlightIndex===this._itemsLength()-1||this.$emit("highlight",this.highlightIndex)},updateInitialHighlightIndex(t){this.isOpen=t,t?(this.openedWithKeyboard&&this.isArrowKeyNav&&this.setHighlightIndex(0),this.$emit("opened",!0)):(this.clearHighlightIndex(),this.openedWithKeyboard=!1,this.$emit("opened",!1))},onSpaceKey(){this.open||(this.openedWithKeyboard=!0)},onEnterKey(){this.open||(this.openedWithKeyboard=!0)},onUpKeyPress(){if(!this.isOpen){this.openedWithKeyboard=!0;return}if(this.isArrowKeyNav)return this.onUpKey()},onDownKeyPress(){if(!this.isOpen){this.openedWithKeyboard=!0;return}if(this.isArrowKeyNav)return this.onDownKey()},onHomeKeyPress(){if(!(!this.isOpen||!this.isArrowKeyNav))return this.onHomeKey()},onEndKeyPress(){if(!(!this.isOpen||!this.isArrowKeyNav))return this.onEndKey()},onKeyPress(t){if(!(!this.isOpen||!this.isArrowKeyNav||!this.isValidLetter(t.key)))return t.stopPropagation(),t.preventDefault(),this.onNavigationKey(t.key)}}};var c=function(){var e=this,s=e._self._c;return s("dt-popover",e._g({ref:"popover",attrs:{"content-width":e.contentWidth,open:e.open,placement:e.placement,"initial-focus-element":e.openedWithKeyboard?"first":"dialog","fallback-placements":e.fallbackPlacements,padding:"none",role:"menu","append-to":e.appendTo,modal:e.modal,"max-height":e.maxHeight,"max-width":e.maxWidth,"open-with-arrow-keys":e.shouldOpenWithArrowKeys,"open-on-context":e.openOnContext,tether:e.tether,transition:e.transition},scopedSlots:e._u([{key:"anchor",fn:function({attrs:i}){return[e._t("anchor",null,null,i)]}},{key:"content",fn:function({close:i}){return[s("ul",{ref:"listWrapper",class:e.listClasses,attrs:{id:e.listId,"data-qa":"dt-dropdown-list-wrapper"},on:{mouseleave:e.clearHighlightIndex,"!mousemove":function(m){return e.onMouseHighlight.apply(null,arguments)}}},[e._t("list",null,{close:i}),e.showVisuallyHiddenClose?s("sr-only-close-button",{attrs:{"visually-hidden-close-label":e.visuallyHiddenCloseLabel,tabindex:e.isArrowKeyNav?-1:0},on:{close:i}}):e._e()],2)]}}],null,!0)},e.dropdownListeners))},y=[],f=d.n(g,c,y,!1,null,null,null,null);const E=f.exports;exports.D=E;
2
+ //# sourceMappingURL=dropdown-zhMEz3bn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-zhMEz3bn.js","sources":["../../components/dropdown/dropdown.vue"],"sourcesContent":["<!-- eslint-disable max-lines -->\n<template>\n <dt-popover\n ref=\"popover\"\n :content-width=\"contentWidth\"\n :open=\"open\"\n :placement=\"placement\"\n :initial-focus-element=\"openedWithKeyboard ? 'first' : 'dialog'\"\n :fallback-placements=\"fallbackPlacements\"\n padding=\"none\"\n role=\"menu\"\n :append-to=\"appendTo\"\n :modal=\"modal\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :open-with-arrow-keys=\"shouldOpenWithArrowKeys\"\n :open-on-context=\"openOnContext\"\n :tether=\"tether\"\n :transition=\"transition\"\n v-on=\"dropdownListeners\"\n >\n <template #anchor=\"{ attrs }\">\n <!-- @slot Anchor element that activates the dropdown -->\n <slot\n ref=\"anchor\"\n name=\"anchor\"\n v-bind=\"attrs\"\n />\n </template>\n <template #content=\"{ close }\">\n <!-- eslint-disable-next-line max-len -->\n <!-- eslint-disable-next-line vuejs-accessibility/mouse-events-have-key-events, vuejs-accessibility/no-static-element-interactions -->\n <ul\n :id=\"listId\"\n ref=\"listWrapper\"\n :class=\"listClasses\"\n data-qa=\"dt-dropdown-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <!-- @slot Slot for the list component -->\n <slot\n name=\"list\"\n :close=\"close\"\n />\n <sr-only-close-button\n v-if=\"showVisuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :tabindex=\"isArrowKeyNav ? -1 : 0\"\n @close=\"close\"\n />\n </ul>\n </template>\n </dt-popover>\n</template>\n\n<script>\nimport KeyboardNavigation from '@/common/mixins/keyboard_list_navigation';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES } from '@/components/popover';\nimport { LIST_ITEM_NAVIGATION_TYPES } from '@/components/list_item';\nimport { DROPDOWN_PADDING_CLASSES } from './dropdown_constants';\nimport { getUniqueString } from '@/common/utils';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\n\nexport default {\n name: 'DtDropdown',\n\n components: {\n DtPopover,\n SrOnlyCloseButton,\n },\n\n mixins: [\n KeyboardNavigation({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n listItemRole: 'menuitem',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n focusOnKeyboardNavigation: true,\n }),\n SrOnlyCloseButtonMixin,\n ],\n\n props: {\n /**\n * Controls whether the dropdown is shown. Leaving this null will have the dropdown trigger on click by default.\n * If you set this value, the default trigger behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Opens the dropdown on right click (context menu). If you set this value to `true`,\n * the default trigger behavior will be disabled.\n */\n openOnContext: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Vertical padding size around the list element.\n * @values none, small, large\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Determines modal state, dropdown has a modal overlay preventing interaction with elements\n * below it, but it is invisible.\n */\n modal: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n * @values null, anchor\n */\n contentWidth: {\n type: String,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * 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 * The type of navigation that this component should support.\n * - \"arrow-keys\" for items that are navigated with UP/DOWN keys.\n * - \"tab\" for items that are navigated using the TAB key.\n * - \"none\" for static items that are not interactive.\n * @values arrow-keys, tab, none\n */\n navigationType: {\n type: String,\n default: LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS,\n validator: (t) => Object.values(LIST_ITEM_NAVIGATION_TYPES).includes(t),\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"placement\",\n * it will attempt to change it's direction to the \"fallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n */\n placement: {\n type: String,\n default: 'bottom',\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 * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If set to false the dialog will display over top of the anchor when there is insufficient space.\n * If set to true it will never move from its position relative to the anchor and will clip instead.\n * <a\n * class=\"d-link\"\n * href=\"https://popper.js.org/docs/v2/modifiers/prevent-overflow/#tether\"\n * target=\"_blank\"\n * >\n * Popper.js docs\n * </a>\n * @values true, false\n */\n tether: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when dropdown is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n ],\n\n data () {\n return {\n LIST_ITEM_NAVIGATION_TYPES,\n DROPDOWN_PADDING_CLASSES,\n EVENT_KEYNAMES,\n openedWithKeyboard: false,\n isOpen: null,\n };\n },\n\n computed: {\n dropdownListeners () {\n return {\n ...this.$listeners,\n\n opened: isPopoverOpen => {\n this.updateInitialHighlightIndex(isPopoverOpen);\n },\n\n keydown: event => {\n const eventCode = event.code;\n\n switch (eventCode) {\n case EVENT_KEYNAMES.up:\n case EVENT_KEYNAMES.arrowup:\n this.onUpKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.down:\n case EVENT_KEYNAMES.arrowdown:\n this.onDownKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.space:\n case EVENT_KEYNAMES.spacebar:\n this.onSpaceKey();\n break;\n case EVENT_KEYNAMES.enter:\n this.onEnterKey();\n break;\n case EVENT_KEYNAMES.home:\n this.onHomeKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n case EVENT_KEYNAMES.end:\n this.onEndKeyPress(event);\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n this.onKeyPress(event);\n break;\n }\n\n this.$emit('keydown', event);\n },\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemEl () {\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n\n isArrowKeyNav () {\n return this.navigationType === this.LIST_ITEM_NAVIGATION_TYPES.ARROW_KEYS;\n },\n\n listClasses () {\n return [\n 'd-dropdown-list',\n DROPDOWN_PADDING_CLASSES[this.padding],\n this.listClass,\n { 'd-context-menu-list': this.openOnContext },\n ];\n },\n\n shouldOpenWithArrowKeys () {\n return !this.openOnContext;\n },\n },\n\n methods: {\n onMouseHighlight (e) {\n const liElement = e.target.closest('li');\n\n if (liElement && liElement.role && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n liElement.focus();\n }\n },\n\n getListElement () {\n return this.$refs.listWrapper;\n },\n\n clearHighlightIndex () {\n this.setHighlightIndex(-1);\n },\n\n afterHighlight () {\n if (this.visuallyHiddenClose && this.highlightIndex === this._itemsLength() - 1) {\n return;\n }\n\n this.$emit('highlight', this.highlightIndex);\n },\n\n updateInitialHighlightIndex (isPopoverOpen) {\n this.isOpen = isPopoverOpen;\n\n if (isPopoverOpen) {\n if (this.openedWithKeyboard && this.isArrowKeyNav) {\n this.setHighlightIndex(0);\n }\n this.$emit('opened', true);\n } else {\n this.clearHighlightIndex();\n this.openedWithKeyboard = false;\n this.$emit('opened', false);\n }\n },\n\n onSpaceKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onEnterKey () {\n if (!this.open) {\n this.openedWithKeyboard = true;\n }\n },\n\n onUpKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onUpKey();\n }\n },\n\n onDownKeyPress () {\n if (!this.isOpen) {\n this.openedWithKeyboard = true;\n return;\n }\n if (this.isArrowKeyNav) {\n return this.onDownKey();\n }\n },\n\n onHomeKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onHomeKey();\n },\n\n onEndKeyPress () {\n if (!this.isOpen || !this.isArrowKeyNav) {\n return;\n }\n\n return this.onEndKey();\n },\n\n onKeyPress (e) {\n if (!this.isOpen || !this.isArrowKeyNav || !this.isValidLetter(e.key)) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n return this.onNavigationKey(e.key);\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.d-context-menu-list {\n width: var(--dt-size-850);\n}\n.d-dropdown-list {\n position: relative;\n margin: var(--dt-space-300);\n padding-left: var(--dt-space-0);\n padding-right: var(--dt-space-0);\n >.dt-list-item {\n margin-top: var(--dt-space-200);\n }\n}\n</style>\n"],"names":["_sfc_main","DtPopover","SrOnlyCloseButton","KeyboardNavigation","SrOnlyCloseButtonMixin","padding","DROPDOWN_PADDING_CLASSES","item","getUniqueString","LIST_ITEM_NAVIGATION_TYPES","appendTo","POPOVER_APPEND_TO_VALUES","EVENT_KEYNAMES","isPopoverOpen","event","e","liElement"],"mappings":"oZAkEAA,EAAA,CACA,KAAA,aAEA,WAAA,CACA,UAAAC,EAAA,UACA,kBAAAC,EAAA,CACA,EAEA,OAAA,CACAC,IAAA,CACA,SAAA,iBACA,MAAA,cACA,eAAA,iBACA,aAAA,WACA,qBAAA,iBACA,sBAAA,wBACA,gBAAA,kBACA,cAAA,eACA,0BAAA,EACA,CAAA,EACAC,EAAA,CACA,EAEA,MAAA,CAMA,KAAA,CACA,KAAA,QACA,QAAA,IACA,EAMA,cAAA,CACA,KAAA,QACA,QAAA,EACA,EAMA,QAAA,CACA,KAAA,OACA,QAAA,QACA,UAAAC,GACA,OAAA,KAAAC,GAAA,EAAA,KAAAC,GAAAA,IAAAF,CAAA,CAEA,EAMA,MAAA,CACA,KAAA,QACA,QAAA,EACA,EAOA,aAAA,CACA,KAAA,OACA,QAAA,IACA,EAMA,UAAA,CACA,KAAA,OACA,QAAA,EACA,EAMA,SAAA,CACA,KAAA,OACA,QAAA,EACA,EAMA,OAAA,CACA,KAAA,OACA,SAAA,CAAA,OAAAG,EAAA,gBAAA,CAAA,CACA,EASA,eAAA,CACA,KAAA,OACA,QAAAC,EAAA,EAAA,WACA,UAAA,GAAA,OAAA,OAAAA,GAAA,EAAA,SAAA,CAAA,CACA,EAYA,mBAAA,CACA,KAAA,MACA,QAAA,IACA,CAAA,MAAA,CAEA,EAKA,UAAA,CACA,KAAA,OACA,QAAA,QACA,EAKA,kBAAA,CACA,KAAA,SACA,QAAA,IACA,EAKA,YAAA,CACA,KAAA,SACA,QAAA,IACA,EAKA,UAAA,CACA,KAAA,CAAA,OAAA,MAAA,MAAA,EACA,QAAA,EACA,EAOA,SAAA,CACA,KAAA,CAAA,YAAA,MAAA,EACA,QAAA,OACA,UAAAC,GACAC,EAAA,EAAA,SAAAD,CAAA,GACAA,aAAA,WAEA,EAcA,OAAA,CACA,KAAA,QACA,QAAA,EACA,EAMA,WAAA,CACA,KAAA,OACA,QAAA,MACA,CACA,EAEA,MAAA,CAOA,YAQA,SAMA,aACA,EAEA,MAAA,CACA,MAAA,CACA,2BAAAD,EAAA,EACA,yBAAAH,EAAA,EACA,eAAAM,EAAA,eACA,mBAAA,GACA,OAAA,IACA,CACA,EAEA,SAAA,CACA,mBAAA,CACA,MAAA,CACA,GAAA,KAAA,WAEA,OAAAC,GAAA,CACA,KAAA,4BAAAA,CAAA,CACA,EAEA,QAAAC,GAAA,CAGA,OAFAA,EAAA,KAEA,CACA,KAAAF,EAAAA,eAAA,GACA,KAAAA,EAAA,eAAA,QACA,KAAA,aAAAE,CAAA,EACAA,EAAA,gBAAA,EACAA,EAAA,eAAA,EACA,MACA,KAAAF,EAAAA,eAAA,KACA,KAAAA,EAAA,eAAA,UACA,KAAA,eAAAE,CAAA,EACAA,EAAA,gBAAA,EACAA,EAAA,eAAA,EACA,MACA,KAAAF,EAAAA,eAAA,MACA,KAAAA,EAAA,eAAA,SACA,KAAA,WAAA,EACA,MACA,KAAAA,EAAA,eAAA,MACA,KAAA,WAAA,EACA,MACA,KAAAA,EAAA,eAAA,KACA,KAAA,eAAAE,CAAA,EACAA,EAAA,gBAAA,EACAA,EAAA,eAAA,EACA,MACA,KAAAF,EAAA,eAAA,IACA,KAAA,cAAAE,CAAA,EACAA,EAAA,gBAAA,EACAA,EAAA,eAAA,EACA,MACA,QACA,KAAA,WAAAA,CAAA,EACA,KACA,CAEA,KAAA,MAAA,UAAAA,CAAA,CACA,CACA,CACA,EAEA,uBAAA,CACA,OAAA,KAAA,mBAAA,KAAA,SACA,EAEA,iBAAA,CACA,OAAA,KAAA,aAAA,KAAA,eACA,EAEA,cAAA,CACA,OAAA,KAAA,iBAAA,cAAA,IAAA,KAAA,WAAA,CACA,EAEA,eAAA,CACA,OAAA,KAAA,iBAAA,KAAA,2BAAA,UACA,EAEA,aAAA,CACA,MAAA,CACA,kBACAR,EAAA,EAAA,KAAA,OAAA,EACA,KAAA,UACA,CAAA,sBAAA,KAAA,aAAA,CACA,CACA,EAEA,yBAAA,CACA,MAAA,CAAA,KAAA,aACA,CACA,EAEA,QAAA,CACA,iBAAAS,EAAA,CACA,MAAAC,EAAAD,EAAA,OAAA,QAAA,IAAA,EAEAC,GAAAA,EAAA,MAAA,KAAA,cAAAA,EAAA,KACA,KAAA,eAAAA,EAAA,EAAA,EACAA,EAAA,MAAA,EAEA,EAEA,gBAAA,CACA,OAAA,KAAA,MAAA,WACA,EAEA,qBAAA,CACA,KAAA,kBAAA,EAAA,CACA,EAEA,gBAAA,CACA,KAAA,qBAAA,KAAA,iBAAA,KAAA,aAAA,EAAA,GAIA,KAAA,MAAA,YAAA,KAAA,cAAA,CACA,EAEA,4BAAAH,EAAA,CACA,KAAA,OAAAA,EAEAA,GACA,KAAA,oBAAA,KAAA,eACA,KAAA,kBAAA,CAAA,EAEA,KAAA,MAAA,SAAA,EAAA,IAEA,KAAA,oBAAA,EACA,KAAA,mBAAA,GACA,KAAA,MAAA,SAAA,EAAA,EAEA,EAEA,YAAA,CACA,KAAA,OACA,KAAA,mBAAA,GAEA,EAEA,YAAA,CACA,KAAA,OACA,KAAA,mBAAA,GAEA,EAEA,cAAA,CACA,GAAA,CAAA,KAAA,OAAA,CACA,KAAA,mBAAA,GACA,MACA,CACA,GAAA,KAAA,cACA,OAAA,KAAA,SAEA,EAEA,gBAAA,CACA,GAAA,CAAA,KAAA,OAAA,CACA,KAAA,mBAAA,GACA,MACA,CACA,GAAA,KAAA,cACA,OAAA,KAAA,WAEA,EAEA,gBAAA,CACA,GAAA,GAAA,KAAA,QAAA,CAAA,KAAA,eAIA,OAAA,KAAA,WACA,EAEA,eAAA,CACA,GAAA,GAAA,KAAA,QAAA,CAAA,KAAA,eAIA,OAAA,KAAA,UACA,EAEA,WAAAE,EAAA,CACA,GAAA,GAAA,KAAA,QAAA,CAAA,KAAA,eAAA,CAAA,KAAA,cAAAA,EAAA,GAAA,GAIA,OAAAA,EAAA,gBAAA,EACAA,EAAA,eAAA,EAEA,KAAA,gBAAAA,EAAA,GAAA,CACA,CACA,CACA"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e={none:void 0,small:"d-py0",large:"d-py4"};exports.D=e;
2
+ //# sourceMappingURL=dropdown_constants-KHFvVI2L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown_constants-KHFvVI2L.js","sources":["../../components/dropdown/dropdown_constants.js"],"sourcesContent":["export const DROPDOWN_PADDING_CLASSES = {\n none: undefined,\n small: 'd-py0',\n large: 'd-py4',\n};\n\nexport default {\n DROPDOWN_PADDING_CLASSES,\n};\n"],"names":["DROPDOWN_PADDING_CLASSES"],"mappings":"aAAY,MAACA,EAA2B,CACtC,KAAM,OACN,MAAO,QACP,MAAO,OACT"}
@@ -0,0 +1,2 @@
1
+ "use strict";const i=require("@dialpad/dialtone-icons/icons.json"),s={100:"d-icon--size-100",200:"d-icon--size-200",300:"d-icon--size-300",400:"d-icon--size-400",500:"d-icon--size-500",600:"d-icon--size-600",700:"d-icon--size-700",800:"d-icon--size-800"},c=i;exports.I=s;exports.a=c;
2
+ //# sourceMappingURL=icon_constants-2S_OSQ1t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon_constants-2S_OSQ1t.js","sources":["../../components/icon/icon_constants.js"],"sourcesContent":["import iconNames from '@dialpad/dialtone-icons/icons.json';\nexport const ICON_SIZE_MODIFIERS = {\n 100: 'd-icon--size-100',\n 200: 'd-icon--size-200',\n 300: 'd-icon--size-300',\n 400: 'd-icon--size-400',\n 500: 'd-icon--size-500',\n 600: 'd-icon--size-600',\n 700: 'd-icon--size-700',\n 800: 'd-icon--size-800',\n};\n\nexport const ICON_NAMES = iconNames;\n\nexport default {\n ICON_SIZE_MODIFIERS,\n ICON_NAMES,\n};\n"],"names":["ICON_SIZE_MODIFIERS","ICON_NAMES","iconNames"],"mappings":"mEACaA,EAAsB,CACjC,IAAK,mBACL,IAAK,mBACL,IAAK,mBACL,IAAK,mBACL,IAAK,mBACL,IAAK,mBACL,IAAK,mBACL,IAAK,kBACP,EAEaC,EAAaC"}
@@ -0,0 +1,3 @@
1
+ "use strict";const d=require("./keyboard_list_navigation-N74Bpdq7.js"),h=require("../lib/utils.cjs"),n=require("./_plugin-vue2_normalizer-ZK80B3OL.js"),o=require("../lib/list-item.cjs"),u=require("../lib/skeleton.cjs"),p={name:"ComboboxLoadingList",components:{DtListItem:o.DtListItem,DtSkeleton:u.DtSkeleton}};var g=function(){var t=this,s=t._self._c;return s("ol",{staticClass:"d-combobox__loading-list",attrs:{"aria-busy":"true"}},t._l(7,function(e){return s("dt-list-item",{key:e,attrs:{role:"option","navigation-type":"none"}},[s("dt-skeleton",{attrs:{"text-option":{type:"body"},offset:0}})],1)}),1)},m=[],c=n.n(p,g,m,!1,null,null,null,null);const l=c.exports,f={name:"ComboboxEmptyList",components:{DtListItem:o.DtListItem},props:{message:{type:String,required:!0},itemClass:{type:[String,Object,Array],default:""}}};var y=function(){var t=this,s=t._self._c;return s("ol",{staticClass:"d-combobox__empty-list",attrs:{"data-qa":"dt-combobox-empty-list"}},[t._t("default",function(){return[s("dt-list-item",{class:["dt-empty-list-item",t.itemClass],attrs:{role:"option","navigation-type":"none",type:"custom"}},[s("span",[t._v(t._s(t.message))])])]})],2)},_=[],b=n.n(f,y,_,!1,null,null,null,null);const r=b.exports,a={EXTRA_SMALL:"xs",SMALL:"sm",DEFAULT:"md",LARGE:"lg",EXTRA_LARGE:"xl"},L={name:"DtCombobox",components:{ComboboxLoadingList:l,ComboboxEmptyList:r},mixins:[d.K({indexKey:"highlightIndex",idKey:"highlightId",listElementKey:"getListElement",afterHighlightMethod:"afterHighlight",beginningOfListMethod:"beginningOfListMethod",endOfListMethod:"endOfListMethod",activeItemKey:"activeItemEl"})],props:{label:{type:String,required:!0},labelVisible:{type:Boolean,default:!0},size:{type:String,default:null,validator:i=>Object.values(a).includes(i)},description:{type:String,default:""},listId:{type:String,default(){return h.getUniqueString()}},onBeginningOfList:{type:Function,default:null},onEndOfList:{type:Function,default:null},showList:{type:Boolean,default:!1},listRenderedOutside:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},emptyList:{type:Boolean,default:!1},emptyStateMessage:{type:String,default:""},emptyStateClass:{type:[String,Object,Array],default:""},clickOnSelect:{type:Boolean,default:!1}},emits:["select","escape","highlight","opened"],data(){return{outsideRenderedListRef:null}},computed:{inputProps(){return{label:this.label,labelVisible:this.labelVisible,size:this.size,description:this.description,role:"combobox","aria-label":this.label,"aria-expanded":this.showList.toString(),"aria-owns":this.listId,"aria-haspopup":"listbox","aria-activedescendant":this.activeItemId,"aria-controls":this.listId}},listProps(){return{role:"listbox",id:this.listId,class:"d-ps-relative","aria-label":this.label}},beginningOfListMethod(){return this.onBeginningOfList||this.jumpToEnd},endOfListMethod(){return this.onEndOfList||this.jumpToBeginning},activeItemId(){if(!(!this.showList||this.highlightIndex<0||this.loading))return this.highlightId},activeItemEl(){return this.highlightId?this.getListElement().querySelector("#"+this.highlightId):""}},watch:{showList(i){this.listRenderedOutside||(this.setInitialHighlightIndex(),this.$emit("opened",i)),!i&&this.outsideRenderedListRef&&(this.outsideRenderedListRef.removeEventListener("mousemove",this.onMouseHighlight),this.outsideRenderedListRef=null)},loading(i){this.$nextTick(()=>{this.setInitialHighlightIndex()})},$props:{deep:!0,immediate:!0,handler(){this.validateEmptyListProps()}}},created(){this.validateEmptyListProps()},methods:{onMouseHighlight(i){if(this.loading)return;const t=i.target.closest("li");t&&this.highlightId!==t.id&&this.setHighlightId(t.id)},getListElement(){var i;return this.outsideRenderedListRef??((i=this.$refs.listWrapper)==null?void 0:i.querySelector(`#${this.listId}`))},clearHighlightIndex(){this.showList&&this.setHighlightIndex(-1)},afterHighlight(){this.loading||this.$emit("highlight",this.highlightIndex)},onEnterKey(){var i;this.loading||this.emptyList||this.highlightIndex>=0&&(this.$emit("select",this.highlightIndex),this.clickOnSelect&&((i=this.activeItemEl)==null||i.click()))},onEscapeKey(){this.$emit("escape")},onOpen(i,t){var s;this.outsideRenderedListRef=t,(s=this.outsideRenderedListRef)==null||s.addEventListener("mousemove",this.onMouseHighlight),this.$emit("opened",i),i&&this.setInitialHighlightIndex()},onKeyValidation(i,t){!this.showList||!this.getListElement()||this[t](i)},setInitialHighlightIndex(){this.showList&&this.$nextTick(()=>{this.setHighlightIndex(this.loading?-1:0)})},validateEmptyListProps(){this.$slots.emptyListItem||(this.emptyList&&!this.emptyStateMessage||!this.emptyList&&this.emptyStateMessage)&&console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the
2
+ empty message.`)}}};var x=function(){var t=this,s=t._self._c;return s("div",{on:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:(e.stopPropagation(),t.onKeyValidation(e,"onEscapeKey"))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")||e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?null:t.onKeyValidation(e,"onEnterKey")},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.stopPropagation(),e.preventDefault(),t.onKeyValidation(e,"onUpKey"))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.stopPropagation(),e.preventDefault(),t.onKeyValidation(e,"onDownKey"))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"home",void 0,e.key,void 0)?null:(e.stopPropagation(),e.preventDefault(),t.onKeyValidation(e,"onHomeKey"))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"end",void 0,e.key,void 0)?null:(e.stopPropagation(),e.preventDefault(),t.onKeyValidation(e,"onEndKey"))}]}},[s("div",{attrs:{"data-qa":"dt-combobox-input-wrapper"}},[t._t("input",null,{inputProps:t.inputProps})],2),t.showList?s("div",{ref:"listWrapper",attrs:{"data-qa":"dt-combobox-list-wrapper"},on:{mouseleave:t.clearHighlightIndex,focusout:t.clearHighlightIndex,"!mousemove":function(e){return t.onMouseHighlight.apply(null,arguments)}}},[t.loading&&!t.listRenderedOutside?s("combobox-loading-list",t._b({},"combobox-loading-list",t.listProps,!1)):t.emptyList&&(t.emptyStateMessage||t.$slots.emptyListItem)&&!t.listRenderedOutside?s("combobox-empty-list",t._b({attrs:{message:t.emptyStateMessage,"item-class":t.emptyStateClass}},"combobox-empty-list",t.listProps,!1),[t._t("emptyListItem")],2):t._t("list",null,{listProps:t.listProps,opened:t.onOpen,clearHighlightIndex:t.clearHighlightIndex})],2):t._e()])},I=[],k=n.n(L,x,I,!1,null,null,null,null);const E=k.exports;exports.C=l;exports.D=E;exports.L=a;exports.a=r;
3
+ //# sourceMappingURL=index-2jPosQBn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-2jPosQBn.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 || $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 } 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 };\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","LABEL_SIZES","ComboboxLoadingList","ComboboxEmptyList","KeyboardNavigation","t","getUniqueString","showList","loading","e","liElement","_a","open","contentRef","eventHandler"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const _=require("emoji-regex"),D=require("emoji-toolkit/emoji_strategy.json"),v=require("./_plugin-vue2_normalizer-ZK80B3OL.js"),L=require("../lib/skeleton.cjs"),d=require("./icon_constants-2S_OSQ1t.js"),f="8.0",m="https://cdn.jsdelivr.net/joypixels/assets/"+f+"/png/unicode/32/";exports.c=null;exports.a=m;exports.b=".png";exports.f=m;exports.g=".png";const a=D;function j(){return a}function b(t,e=".png"){t.endsWith("/")||(t=t+"/"),exports.a=t,exports.b=e}function k(t,e=".svg"){t.endsWith("/")||(t=t+"/"),exports.f=t,exports.g=e}function w(t){exports.c=t}function q(t){h(t)}function h(t){const e=["extension","custom"],i=["name","category","shortname","extension","custom"],n=(s,o,r)=>{if(s[o]===void 0){if(!e.includes(o))return;s[o]=r}else Array.isArray(s[o])?s[o]=s[o].concat(r):s[o]=r};Object.entries(t).forEach(s=>{const[o,r]=s;if(o in a){const l=a[o];for(const c in r){const y=r[c];n(l,c,y)}}else i.every(c=>r[c]!==void 0)?a[o]=r:console.error("The following custom emoji doesn't contain the required properties:",r)})}function u(t){function e(n,s){if(!(!n||typeof n!="object")){if("shortname"in n&&(n.shortname===t||n.shortname_alternates.includes(t)))return n.key=s,i=n,!0;Object.keys(n).some(function(o){return e(n[o],o)})}}let i;return e(j(),null),i}function g(t){let e="";for(const i of t){const n=i.codePointAt(0).toString(16).padStart(4,"0");["200d","fe0f"].includes(n)||(e!==""&&(e=e+"-"),e=e+n)}return e}function p(t){const e=t.split("-");let i="";return e.forEach(n=>{i=i+String.fromCodePoint(parseInt(n,16))}),i}function E(t){if(t.startsWith(":")&&t.endsWith(":"))return u(t);{const e=g(t),i=a[e];return i&&(i.key=e),i}}function A(t){const e=t.match(/:\w+:/g);return S(e)}function S(t){const e=t?t.filter(i=>u(i)):[];return new Set(e)}function z(t){const e=[...t.matchAll(_())],i=e.length?e.map(n=>n[0]):[];return new Set(i)}const C={name:"DtEmoji",components:{DtSkeleton:L.DtSkeleton},props:{code:{type:String,required:!0},size:{type:String,default:"500",validator:t=>Object.keys(d.I).includes(t)},imgClass:{type:[String,Object,Array],default:""},ariaLabel:{type:String,default:null},showSkeleton:{type:Boolean,default:!0}},data(){return{emojiData:null,imgLoading:!1}},computed:{emojiDataValid(){return!!this.emojiData},emojiSrc(){var t;return this.emojiDataValid?(t=this.emojiData)!=null&&t.custom?exports.c+this.emojiData.key+this.emojiData.extension:["100","200"].includes(this.size)?exports.a+this.emojiData.key+exports.b:exports.f+this.emojiData.key+exports.g:"invalid"},emojiAlt(){if(this.emojiDataValid)return this.emojiData.unicode_output?p(this.emojiData.unicode_output):this.emojiData.name},emojiLabel(){return this.emojiDataValid?this.ariaLabel?this.ariaLabel:this.emojiData.name:"Invalid Emoji"},emojiSize(){return d.I[this.size]}},watch:{code:{handler:function(){this.getEmojiData()},immediate:!0},emojiSrc:{handler:async function(){this.imgLoading=!0},immediate:!0}},methods:{getEmojiData(){this.emojiData=E(this.code)},imageLoaded(){this.imgLoading=!1},imageErrored(){this.imgLoading=!1}}};var P=function(){var e=this,i=e._self._c;return i("span",{class:["d-emoji","d-icon",e.emojiSize]},[i("dt-skeleton",{directives:[{name:"show",rawName:"v-show",value:e.imgLoading&&e.showSkeleton,expression:"imgLoading && showSkeleton"}],class:["d-icon",e.emojiSize],attrs:{offset:0,"shape-option":{shape:"circle",size:"100%"}}}),i("img",{directives:[{name:"show",rawName:"v-show",value:!e.imgLoading,expression:"!imgLoading"}],ref:"emojiImg",class:["d-icon",e.emojiSize,e.imgClass],attrs:{"aria-label":e.emojiLabel,alt:e.emojiAlt,title:e.emojiLabel,src:e.emojiSrc},on:{load:e.imageLoaded,error:e.imageErrored}})],1)},x=[],V=v.n(C,P,x,!1,null,null,null,null);const I=V.exports;exports.D=I;exports.d=m;exports.e=f;exports.h=a;exports.i=j;exports.j=k;exports.k=w;exports.l=q;exports.m=u;exports.n=p;exports.o=E;exports.p=A;exports.q=S;exports.r=z;exports.s=b;exports.u=g;exports.v=h;
2
+ //# sourceMappingURL=index-sdfB7Aok.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-sdfB7Aok.js","sources":["../../common/emoji/index.js","../../components/emoji/emoji.vue"],"sourcesContent":["import emojiRegex from 'emoji-regex';\nimport emojiJsonLocal from 'emoji-toolkit/emoji_strategy.json';\n\nexport const emojiVersion = '8.0';\nexport const defaultEmojiAssetUrl = 'https://cdn.jsdelivr.net/joypixels/assets/' + emojiVersion + '/png/unicode/32/';\nexport let customEmojiAssetUrl = null;\n\n// Used for emoji 16px and smaller\nexport let emojiImageUrlSmall = defaultEmojiAssetUrl;\nexport let emojiFileExtensionSmall = '.png';\n\n// Used for emoji larger than 16px\nexport let emojiImageUrlLarge = defaultEmojiAssetUrl;\nexport let emojiFileExtensionLarge = '.png';\n\nexport const emojiJson = emojiJsonLocal;\n\nexport function getEmojiData () {\n return emojiJson;\n}\n\nexport function setEmojiAssetUrlSmall (url, fileExtension = '.png') {\n if (!url.endsWith('/')) {\n url = url + '/';\n }\n emojiImageUrlSmall = url;\n emojiFileExtensionSmall = fileExtension;\n}\n\nexport function setEmojiAssetUrlLarge (url, fileExtension = '.svg') {\n if (!url.endsWith('/')) {\n url = url + '/';\n }\n emojiImageUrlLarge = url;\n emojiFileExtensionLarge = fileExtension;\n}\n\nexport function setCustomEmojiUrl (url) {\n customEmojiAssetUrl = url;\n}\n\nexport function setCustomEmojiJson (json) {\n validateCustomEmojiJson(json);\n}\n\n/**\n * Validate custom emoji json\n */\nexport function validateCustomEmojiJson (json) {\n const customEmojiProps = ['extension', 'custom'];\n const customEmojiRequiredProps = [\n 'name',\n 'category',\n 'shortname',\n 'extension',\n 'custom',\n ];\n\n /**\n * Update single emoji properties.\n * If the property exists in emojiData, it'll add the values if the property is an array, otherwise will overwrite.\n * If not exists, will add the property to the emojiData object.\n */\n const _updateNativeEmojiData = (emojiData, propName, propValue) => {\n if (emojiData[propName] === undefined) {\n if (!customEmojiProps.includes(propName)) {\n return;\n }\n\n // new property to add\n emojiData[propName] = propValue;\n } else {\n if (Array.isArray(emojiData[propName])) {\n emojiData[propName] = emojiData[propName].concat(propValue);\n } else {\n emojiData[propName] = propValue;\n }\n }\n };\n\n Object.entries(json).forEach((item) => {\n const [customEmojiKey, customEmojiValue] = item;\n\n if (customEmojiKey in emojiJson) {\n // custom emoji exists in emoji json which means to update some data in the native emoji\n const emojiData = emojiJson[customEmojiKey];\n\n for (const customEmojiPropertyName in customEmojiValue) {\n const customEmojiPropertyValue = customEmojiValue[customEmojiPropertyName];\n\n _updateNativeEmojiData(emojiData, customEmojiPropertyName, customEmojiPropertyValue);\n }\n } else {\n // new custom emoji\n const _validateRequiredProps = () =>\n customEmojiRequiredProps.every((val) => {\n return customEmojiValue[val] !== undefined;\n });\n\n if (_validateRequiredProps()) {\n emojiJson[customEmojiKey] = customEmojiValue;\n } else {\n console.error(\n 'The following custom emoji doesn\\'t contain the required properties:',\n customEmojiValue,\n );\n }\n }\n });\n}\n\n// recursively searches the emoji data object containing data for all emojis\n// and returns the object with the specified shortcode.\nexport function shortcodeToEmojiData (shortcode) {\n // eslint-disable-next-line complexity\n function f (o, key) {\n if (!o || typeof o !== 'object') {\n return;\n }\n if ('shortname' in o) {\n if (o.shortname === shortcode || o.shortname_alternates.includes(shortcode)) {\n o.key = key;\n reference = o;\n return true;\n }\n }\n Object.keys(o).some(function (k) {\n return f(o[k], k);\n });\n }\n\n let reference;\n f(getEmojiData(), null);\n return reference;\n}\n\n// Takes in an emoji unicode character(s) and converts it to an emoji string in the format the emoji data object expects\n// as a key. There can be multiple unicode characters in an emoji to denote the emoji itself, skin tone, gender\n// and such. Note that this function does NOT return variation selectors (fe0f) or zero width joiners (200d), as these\n// are not included as part of the key in the emoji.json.\n//\n// Example:\n// return value for smile emoji (no skin tone): 1f600\n// return value for left facing fist (light skin tone): 1f91b-1f3fb\nexport function unicodeToString (emoji) {\n let key = '';\n for (const codePoint of emoji) {\n const codepoint = codePoint.codePointAt(0).toString(16).padStart(4, '0');\n\n // skip 200d and fe0f as these are not included in emoji_strategy.json keys\n if (['200d', 'fe0f'].includes(codepoint)) continue;\n if (key !== '') { key = key + '-'; }\n key = key + codepoint;\n }\n return key;\n}\n\n// Takes in unicode in string form ex: '1f91b-1f3fb' and converts it to an actual unicode character.\nexport function stringToUnicode (str) {\n const uChars = str.split('-');\n let result = '';\n uChars.forEach((uChar) => {\n result = result + String.fromCodePoint(parseInt(uChar, 16));\n });\n return result;\n}\n\n// Takes in a code (which could be unicode or shortcode) and returns the emoji data for it.\nexport function codeToEmojiData (code) {\n if (code.startsWith(':') && code.endsWith(':')) {\n return shortcodeToEmojiData(code);\n } else {\n const unicodeString = unicodeToString(code);\n\n const result = emojiJson[unicodeString];\n if (result) result.key = unicodeString;\n return result;\n }\n}\n\n// Finds every shortcode in slot text\n// filters only the existing codes in emojiJson\n// removes duplicates.\n// @returns {string[]}\nexport function findShortCodes (textContent) {\n const shortcodes = textContent.match(/:\\w+:/g);\n return filterValidShortCodes(shortcodes);\n}\n\nexport function filterValidShortCodes (shortcodes) {\n const filtered = shortcodes ? shortcodes.filter(code => shortcodeToEmojiData(code)) : [];\n return new Set(filtered);\n}\n\n// Finds every emoji in slot text\n// removes duplicates\n// @returns {string[]}\nexport function findEmojis (textContent) {\n const matches = [...textContent.matchAll(emojiRegex())];\n const emojis = matches.length ? matches.map(match => match[0]) : [];\n return new Set(emojis);\n}\n","<template>\n <span :class=\"['d-emoji', 'd-icon', emojiSize]\">\n <dt-skeleton\n v-show=\"imgLoading && showSkeleton\"\n :offset=\"0\"\n :class=\"['d-icon', emojiSize]\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n />\n <img\n v-show=\"!imgLoading\"\n ref=\"emojiImg\"\n :class=\"['d-icon', emojiSize, imgClass]\"\n :aria-label=\"emojiLabel\"\n :alt=\"emojiAlt\"\n :title=\"emojiLabel\"\n :src=\"emojiSrc\"\n @load=\"imageLoaded\"\n @error=\"imageErrored\"\n >\n </span>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\nimport {\n codeToEmojiData,\n stringToUnicode,\n emojiImageUrlSmall,\n emojiFileExtensionSmall,\n emojiImageUrlLarge,\n emojiFileExtensionLarge,\n customEmojiAssetUrl,\n} from '@/common/emoji';\nimport { DtSkeleton } from '@/components/skeleton';\n\n/**\n * Renders an emoji from a shortcode such as :smile: or unicode character such as 😄\n * @see https://dialtone.dialpad.com/components/emoji.html\n */\nexport default {\n name: 'DtEmoji',\n\n components: {\n DtSkeleton,\n },\n\n props: {\n /**\n * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.\n * <a class=\"d-link\" href=\"https://emojipedia.org/joypixels/\" target=\"_blank\">JoyPixels</a>\n * for all supported shortcode/unicode or the docs for setting up custom emojis.\n */\n code: {\n type: String,\n required: true,\n },\n\n /**\n * The size of the emoji. Can be any of the icon size utility classes from\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/icon.html\" target=\"_blank\"> Dialpad Icon Size</a>\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n\n /**\n * Additional class name for the emoji img element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n imgClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n\n * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will\n * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the\n * getEmojiData() function\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n emojiData: null,\n imgLoading: false,\n };\n },\n\n computed: {\n emojiDataValid () {\n return !!this.emojiData;\n },\n\n emojiSrc () {\n if (!this.emojiDataValid) { return 'invalid'; }\n\n // custom emoji\n if (this.emojiData?.custom) {\n return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;\n }\n\n if (['100', '200'].includes(this.size)) {\n return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;\n } else {\n return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;\n }\n },\n\n emojiAlt () {\n if (!this.emojiDataValid) { return undefined; }\n return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;\n },\n\n emojiLabel () {\n if (!this.emojiDataValid) { return 'Invalid Emoji'; }\n return this.ariaLabel ? this.ariaLabel : this.emojiData.name;\n },\n\n emojiSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n },\n\n watch: {\n code: {\n handler: function () {\n this.getEmojiData();\n },\n\n immediate: true,\n },\n\n emojiSrc: {\n handler: async function () {\n this.imgLoading = true;\n },\n\n immediate: true,\n },\n },\n\n methods: {\n getEmojiData () {\n this.emojiData = codeToEmojiData(this.code);\n },\n\n imageLoaded () {\n this.imgLoading = false;\n },\n\n imageErrored () {\n this.imgLoading = false;\n },\n },\n};\n</script>\n"],"names":["emojiVersion","defaultEmojiAssetUrl","customEmojiAssetUrl","emojiImageUrlSmall","emojiFileExtensionSmall","emojiImageUrlLarge","emojiFileExtensionLarge","emojiJson","emojiJsonLocal","getEmojiData","setEmojiAssetUrlSmall","url","fileExtension","setEmojiAssetUrlLarge","setCustomEmojiUrl","setCustomEmojiJson","json","validateCustomEmojiJson","customEmojiProps","customEmojiRequiredProps","_updateNativeEmojiData","emojiData","propName","propValue","item","customEmojiKey","customEmojiValue","customEmojiPropertyName","customEmojiPropertyValue","val","shortcodeToEmojiData","shortcode","f","o","key","reference","k","unicodeToString","emoji","codePoint","codepoint","stringToUnicode","str","uChars","result","uChar","codeToEmojiData","code","unicodeString","findShortCodes","textContent","shortcodes","filterValidShortCodes","filtered","findEmojis","matches","emojiRegex","emojis","match","_sfc_main","DtSkeleton","ICON_SIZE_MODIFIERS","_a"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const i=require("vue"),r=require("../lib/constants.cjs"),n=require("../lib/validators.cjs"),s=require("../lib/utils.cjs"),l={inheritAttrs:!1,props:{label:{type:String,default:""},name:{type:String,default:""},value:{type:[String,Number,Boolean,Object],default:null},description:{type:String,default:""},disabled:{type:Boolean,default:!1},validationState:{type:String,default:"",validator:e=>e?Object.values(r.VALIDATION_MESSAGE_TYPES).includes(e):!0},inputClass:{type:[String,Array,Object],default:""},labelClass:{type:[String,Array,Object],default:""},descriptionClass:{type:[String,Array,Object],default:""},labelChildProps:{type:Object,default:()=>({})},descriptionChildProps:{type:Object,default:()=>({})}},data(){return{internalDisabled:this.disabled,internalValidationState:this.validationState}},watch:{disabled(e){this.internalDisabled=e},validationState(e){this.internalValidationState=e}},methods:{validateInputLabels(e,t){!e&&!t&&i.util.warn("You must provide an aria-label when there is no label passed",this)}}},o={model:{prop:"checked"},props:{checked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},value:{type:[String,Number,Boolean],default:null}},data(){return{internalChecked:this.checked,internalIndeterminate:this.indeterminate}},watch:{checked(e){this.internalChecked=e},indeterminate(e){this.internalIndeterminate=e}}},u={inject:{groupContext:{default:{}},setGroupValue:{default:()=>()=>{}}},data(){return{internalValue:this.value}},computed:{hasGroup(){return Object.prototype.hasOwnProperty.call(this.groupContext,"name")},groupName(){var e;return((e=this.groupContext)==null?void 0:e.name)??""},groupValue(){var e;return(e=this.groupContext)==null?void 0:e.value},groupDisabled(){var e;return((e=this.groupContext)==null?void 0:e.disabled)??!1},groupValidationState(){var e;return((e=this.groupContext)==null?void 0:e.validationState)??null},internalName(){return this.name||this.groupName}},watch:{value(e){this.internalValue=e},groupValue:{immediate:!0,handler(e){this.hasGroup&&(this.internalValue=e)}},groupDisabled:{immediate:!0,handler(e){this.hasGroup&&(this.internalDisabled=this.disabled||e)}},groupValidationState:{immediate:!0,handler(e){this.hasGroup&&(this.internalValidationState=e||this.validationState)}}},created(){var a;const e=Object.prototype.hasOwnProperty.call(this.groupContext,"name"),t=(a=this.groupContext)==null?void 0:a.name;this.name&&e&&t!==this.name&&i.util.warn(`Component is being used inside a Group. Did you mean to override the name prop value (${t}) with (${this.name})? It is recommended to only set name at the Group level.`,this)}},d={props:{messagesClass:{type:[String,Array,Object],default:""},messagesChildProps:{type:Object,default:()=>({})},showMessages:{type:Boolean,default:!0},messages:{type:Array,default:()=>[],validator:e=>n.validationMessageValidator(e)}},computed:{formattedMessages(){return s.formatMessages(this.messages)}}};exports.C=o;exports.G=u;exports.I=l;exports.M=d;
2
+ //# sourceMappingURL=input-o-fc1X4b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-o-fc1X4b.js","sources":["../../common/mixins/input.js"],"sourcesContent":["import Vue from 'vue';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\nimport { validationMessageValidator } from '@/common/validators';\nimport { formatMessages } from '@/common/utils';\n\n/**\n * This mixin provides a base set of props, watchers and data attributes that are commonly used in our input components.\n * @displayName Input Mixin\n */\nexport const InputMixin = {\n inheritAttrs: false,\n\n props: {\n /**\n * A provided label for the input\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * The name of the input\n */\n name: {\n type: String,\n default: '',\n },\n\n /**\n * The value of the input\n * @model value\n */\n value: {\n type: [String, Number, Boolean, Object],\n default: null,\n },\n\n /**\n * Describes the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Disables the input\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The validation state of the input\n */\n validationState: {\n type: String,\n default: '',\n validator: validationState => {\n if (!validationState) {\n return true;\n }\n\n return Object.values(VALIDATION_MESSAGE_TYPES).includes(validationState);\n },\n },\n\n /**\n * Used to customize the input element\n */\n inputClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n },\n\n data () {\n return {\n internalDisabled: this.disabled,\n internalValidationState: this.validationState,\n };\n },\n\n watch: {\n disabled (newDisabled) {\n // update internal disabled when the prop changes\n this.internalDisabled = newDisabled;\n },\n\n validationState (newValidationState) {\n // update internal validation state when the prop changes\n this.internalValidationState = newValidationState;\n },\n },\n\n methods: {\n /**\n * @param {Boolean | String} hasLabelOrLabel either a boolean indicating the label exists or the label itself\n * @param {String} ariaLabel the aria-label passed (null/undefined if it's not passed)\n */\n validateInputLabels (hasLabelOrLabel, ariaLabel) {\n if (!hasLabelOrLabel && !ariaLabel) {\n Vue.util.warn(\n 'You must provide an aria-label when there is no label passed',\n this,\n );\n }\n },\n },\n};\n\n/**\n * This mixin provides common logic shared amongst our checkable inputs.\n *\n * This includes the group context, checked model & prop, internal data attributes as well as a set common computed\n * properties and watchers. It also includes the group name warning logic.\n * @displayName Checkable Mixin\n */\nexport const CheckableMixin = {\n model: {\n prop: 'checked',\n },\n\n props: {\n /**\n * Used to set the state of the checkable input\n * @model checked\n */\n checked: {\n type: Boolean,\n default: false,\n },\n /**\n * Indeterminate State, toggling indeterminate checkbox will uncheck\n */\n indeterminate: {\n type: Boolean,\n default: false,\n },\n /**\n * The value of the input\n */\n value: {\n type: [String, Number, Boolean],\n default: null,\n },\n },\n\n data () {\n return {\n internalChecked: this.checked,\n internalIndeterminate: this.indeterminate,\n };\n },\n\n watch: {\n checked (newChecked) {\n // update internal checked when the prop changes\n this.internalChecked = newChecked;\n },\n\n indeterminate (newValue) {\n this.internalIndeterminate = newValue;\n },\n },\n};\n\n/**\n * This mixin provides common logic shared amongst our groupable inputs.\n *\n * This includes the group context and internal data attributes as well as a set common computed\n * properties and watchers. It also includes the group name warning logic.\n * @displayName Groupable Mixin\n */\nexport const GroupableMixin = {\n inject: {\n // Object used to pass data from the group\n groupContext: {\n default: {},\n },\n\n // Method used to update the group value\n setGroupValue: {\n default: () => { return () => {}; },\n },\n },\n\n data () {\n return {\n internalValue: this.value,\n };\n },\n\n computed: {\n hasGroup () {\n return Object.prototype.hasOwnProperty.call(this.groupContext, 'name');\n },\n\n groupName () {\n return this.groupContext?.name ?? '';\n },\n\n groupValue () {\n return this.groupContext?.value;\n },\n\n groupDisabled () {\n return this.groupContext?.disabled ?? false;\n },\n\n groupValidationState () {\n return this.groupContext?.validationState ?? null;\n },\n\n internalName () {\n return this.name || this.groupName;\n },\n },\n\n watch: {\n value (newValue) {\n // update internal value when the prop changes\n this.internalValue = newValue;\n },\n\n groupValue: {\n immediate: true,\n handler (newGroupValue) {\n if (this.hasGroup) {\n // update internal value when the group disabled changes\n this.internalValue = newGroupValue;\n }\n },\n },\n\n groupDisabled: {\n immediate: true,\n handler (newGroupDisabled) {\n if (this.hasGroup) {\n // update internal disabled when the group disabled changes\n this.internalDisabled = this.disabled || newGroupDisabled;\n }\n },\n },\n\n groupValidationState: {\n immediate: true,\n handler (newGroupValidationState) {\n if (this.hasGroup) {\n // update internal validation state when the group validation state changes\n this.internalValidationState = newGroupValidationState || this.validationState;\n }\n },\n },\n },\n\n created () {\n const hasGroupName = Object.prototype.hasOwnProperty.call(this.groupContext, 'name');\n const reactiveGroupName = this.groupContext?.name;\n\n if (!!this.name && hasGroupName && reactiveGroupName !== this.name) {\n Vue.util.warn(\n 'Component is being used inside a Group. Did you mean to override the name prop value ' +\n `(${reactiveGroupName}) with (${this.name})? It is recommended to only set name at the Group level.`,\n this,\n );\n }\n },\n};\n\n/**\n * This mixin provides common logic shared amongst our validation messages inputs.\n * @displayName Messages Mixin\n */\nexport const MessagesMixin = {\n props: {\n /**\n * Used to customize the validation messages component\n */\n messagesClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the validation messages component\n */\n messagesChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Used to hide / show the validation messages\n * @values true, false\n */\n showMessages: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Validation messages\n */\n messages: {\n type: Array,\n default: () => [],\n validator: messages => {\n return validationMessageValidator(messages);\n },\n },\n },\n\n computed: {\n formattedMessages () {\n return formatMessages(this.messages);\n },\n },\n};\n\nexport default {\n InputMixin,\n CheckableMixin,\n GroupableMixin,\n MessagesMixin,\n};\n"],"names":["InputMixin","validationState","VALIDATION_MESSAGE_TYPES","newDisabled","newValidationState","hasLabelOrLabel","ariaLabel","Vue","CheckableMixin","newChecked","newValue","GroupableMixin","_a","newGroupValue","newGroupDisabled","newGroupValidationState","hasGroupName","reactiveGroupName","MessagesMixin","messages","validationMessageValidator","formatMessages"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const a=require("vue"),s=require("../lib/validators.cjs"),t=require("../lib/utils.cjs"),i=require("../lib/validation-messages.cjs"),r={components:{DtValidationMessages:i.DtValidationMessages},provide(){return{groupContext:this.provideObj,setGroupValue:this.setGroupValue}},props:{id:{type:String,default(){return t.getUniqueString()}},value:{type:[String,Number,Boolean,Object],default:null},name:{type:String,required:!0},legend:{type:String,default:""},disabled:{type:Boolean,default:!1},messages:{type:Array,default:()=>[],validator:e=>s.validationMessageValidator(e)},showMessages:{type:Boolean,default:!0},legendClass:{type:[String,Array,Object],default:""},messagesClass:{type:[String,Array,Object],default:""},legendChildProps:{type:Object,default:()=>({})},messagesChildProps:{type:Object,default:()=>({})}},data(){const e=t.formatMessages(this.messages);return{provideObj:{name:this.name,disabled:this.disabled,validationState:t.getValidationState(e)}}},computed:{formattedMessages(){return t.formatMessages(this.messages)},validationState(){return t.getValidationState(this.formattedMessages)}},watch:{disabled(e){this.provideObj.disabled=e},validationState(e){this.provideObj.validationState=e}},methods:{setGroupValue(e){this.internalValue=e,this.$emit("input",e)}},mounted(){!this.legend&&!this.$slots.legend&&!this.$attrs["aria-label"]&&a.util.warn("It is expected that an aria-label is provided when there is no legend.",this)}};exports.I=r;
2
+ //# sourceMappingURL=input_group-j2gTtc1C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input_group-j2gTtc1C.js","sources":["../../common/mixins/input_group.js"],"sourcesContent":["import Vue from 'vue';\nimport { DtValidationMessages } from '@/components/validation_messages';\nimport { validationMessageValidator } from '../validators';\nimport {\n getUniqueString,\n formatMessages,\n getValidationState,\n} from '@/common/utils';\n\n/**\n * This mixin provides a base provide obj and set of components, props, computed, watchers and data attributes that are\n * commonly used in our input group components.\n * @displayName Input Group Mixin\n */\nexport const InputGroupMixin = {\n components: { DtValidationMessages },\n\n // provide data to slotted components\n provide () {\n return {\n groupContext: this.provideObj,\n setGroupValue: this.setGroupValue,\n };\n },\n\n props: {\n /**\n * The id of the input group\n */\n id: {\n type: String,\n default () {\n return getUniqueString();\n },\n },\n\n /**\n * The value of the input group\n */\n value: {\n type: [String, Number, Boolean, Object],\n default: null,\n },\n\n /**\n * The name of the input group\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * The legend of the input group\n */\n legend: {\n type: String,\n default: '',\n },\n\n /**\n * Disables the input group\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Validation messages\n */\n messages: {\n type: Array,\n default: () => [],\n validator: messages => validationMessageValidator(messages),\n },\n\n /**\n * Show validation messages\n * @values true, false\n */\n showMessages: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Used to customize the legend element\n */\n legendClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the messages container\n */\n messagesClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the legend element\n */\n legendChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the messages container\n */\n messagesChildProps: {\n type: Object,\n default: () => ({}),\n },\n },\n\n data () {\n const formattedMessages = formatMessages(this.messages);\n\n return {\n // wrap values in object to make reactive\n provideObj: {\n name: this.name,\n disabled: this.disabled,\n validationState: getValidationState(formattedMessages),\n },\n };\n },\n\n computed: {\n formattedMessages () {\n return formatMessages(this.messages);\n },\n\n validationState () {\n return getValidationState(this.formattedMessages);\n },\n },\n\n watch: {\n disabled (newDisabled) {\n this.provideObj.disabled = newDisabled;\n },\n\n validationState (newValidationState) {\n this.provideObj.validationState = newValidationState;\n },\n },\n\n methods: {\n /*\n * provided value to support 2 way binding for slotted input components.\n * slotted input components will change this value and need to emit new value up.\n */\n setGroupValue (newValue) {\n this.internalValue = newValue;\n this.$emit('input', newValue);\n },\n },\n\n mounted () {\n if (!this.legend && !this.$slots.legend && !this.$attrs['aria-label']) {\n Vue.util.warn('It is expected that an aria-label is provided when there is no legend.', this);\n }\n },\n};\n\nexport default {\n InputGroupMixin,\n};\n"],"names":["InputGroupMixin","DtValidationMessages","getUniqueString","messages","validationMessageValidator","formattedMessages","formatMessages","getValidationState","newDisabled","newValidationState","newValue","Vue"],"mappings":"iJAcaA,EAAkB,CAC7B,WAAY,CAAEC,qBAAAA,EAAAA,oBAAsB,EAGpC,SAAW,CACT,MAAO,CACL,aAAc,KAAK,WACnB,cAAe,KAAK,aAC1B,CACG,EAED,MAAO,CAIL,GAAI,CACF,KAAM,OACN,SAAW,CACT,OAAOC,EAAe,gBAAA,CACvB,CACF,EAKD,MAAO,CACL,KAAM,CAAC,OAAQ,OAAQ,QAAS,MAAM,EACtC,QAAS,IACV,EAKD,KAAM,CACJ,KAAM,OACN,SAAU,EACX,EAKD,OAAQ,CACN,KAAM,OACN,QAAS,EACV,EAMD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAKD,SAAU,CACR,KAAM,MACN,QAAS,IAAM,CAAE,EACjB,UAAWC,GAAYC,EAA0B,2BAACD,CAAQ,CAC3D,EAMD,aAAc,CACZ,KAAM,QACN,QAAS,EACV,EAKD,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,cAAe,CACb,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,iBAAkB,CAChB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EAKD,mBAAoB,CAClB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,CACF,EAED,MAAQ,CACN,MAAME,EAAoBC,EAAAA,eAAe,KAAK,QAAQ,EAEtD,MAAO,CAEL,WAAY,CACV,KAAM,KAAK,KACX,SAAU,KAAK,SACf,gBAAiBC,EAAkB,mBAACF,CAAiB,CACtD,CACP,CACG,EAED,SAAU,CACR,mBAAqB,CACnB,OAAOC,EAAc,eAAC,KAAK,QAAQ,CACpC,EAED,iBAAmB,CACjB,OAAOC,EAAkB,mBAAC,KAAK,iBAAiB,CACjD,CACF,EAED,MAAO,CACL,SAAUC,EAAa,CACrB,KAAK,WAAW,SAAWA,CAC5B,EAED,gBAAiBC,EAAoB,CACnC,KAAK,WAAW,gBAAkBA,CACnC,CACF,EAED,QAAS,CAKP,cAAeC,EAAU,CACvB,KAAK,cAAgBA,EACrB,KAAK,MAAM,QAASA,CAAQ,CAC7B,CACF,EAED,SAAW,CACL,CAAC,KAAK,QAAU,CAAC,KAAK,OAAO,QAAU,CAAC,KAAK,OAAO,YAAY,GAClEC,EAAI,KAAK,KAAK,yEAA0E,IAAI,CAE/F,CACH"}
@@ -0,0 +1,2 @@
1
+ "use strict";const E={methods:{scrollElementIntoViewIfNeeded(e,i,s,n){e.scrollIntoViewIfNeeded?this.scrollIntoViewIfNeeded(e,i,s,n):this.scrollIntoView(e,"bottom",!1,s,n)},scrollElementIntoView(e,i,s,n){if(i==="center"){this.scrollIntoView(e,"center",!1,s,n);return}i===!1?this.scrollIntoView(e,"bottom",!1,s,n):this.scrollIntoView(e,"top",!1,s,n)},scrollIntoViewIfNeeded(e,i,s,n){const r=i?"center":void 0;this.scrollIntoView(e,r,!0,s,n)},scrollIntoView(e,i,s,n,r){if(!e||!e.parentElement)return;const l=e.offsetTop,h=r||e.parentElement,c=this._getScrollBounds(h),m=c.bottom-c.top,d=this._getElementHeight(e),g=l+d;let t=-1;switch(i){case"top":t=l;break;case"center":t=l+(d-m)/2;break;case"bottom":t=t=g-m;break;default:l-c.top<=m/2?t=l:t=g-m;break}this._setScrollTop(h,t,c,l,g,s,n)},_setScrollTop(e,i,s,n,r,l,h){s=s||this._getScrollBounds(e);const c=s.bottom-s.top;if(l&&this._inScrollBounds(n,r,s))if(n<s.top)i=n;else if(r>s.bottom)i=r-c;else return;h?e.scrollTo({top:i,behavior:h}):e.scrollTop=i},_getElementHeight(e){return e.getBoundingClientRect().height},_getScrollBounds(e){const i=this._getElementHeight(e),s=e.scrollTop;return{top:s,bottom:s+i}},_inScrollBounds(e,i,s){const n=i-e;return i<=s.bottom+3*n/4&&e>=s.top-n/4}}},N="listElementKey is required or the referenced element doesn't exist. Received listElement: ",_=({listItemRole:e="option",indexKey:i="highlightIndex",idKey:s="highlightId",listElementKey:n="listRef",activeItemKey:r="",openMethod:l=null,afterHighlightMethod:h=null,beginningOfListMethod:c=null,endOfListMethod:m=null,scrollToOnHighlight:d=!0,focusOnKeyboardNavigation:g=!1}={})=>({mixins:[E],data(){return{[i]:-1,[s]:"",scrollToOnHighlight:d,focusOnKeyboardNavigation:g}},provide(){return{highlightId:()=>this[s]}},methods:{_getListElement(){var t;return((t=this[n]())==null?void 0:t.$el)||this[n]()},_itemsLength(){const t=this._getListItemNodes();return t===null?0:t.length},_getListItemNodes(){const t=this._getListElement();return t?Array.from(t.querySelectorAll(`[role="${e}"], #sr-only-close-button`)):(console.error(N,t),null)},onUpKey(){l&&this[l](!0),this[i]>0?this.setHighlightIndex(this[i]-1):c&&this[c](),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onDownKey(){l&&this[l](!0),this[i]<this._itemsLength()-1?this.setHighlightIndex(this[i]+1):m&&this[m](),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onHomeKey(){this.jumpToBeginning(),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onEndKey(){this.jumpToEnd(),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onNavigationKey(t){const o=this._getListItemNodes(),I=o.filter(u=>u.textContent.trim().toLowerCase().startsWith(t.toLowerCase()));if(I.length<=0)return;const f=I.findIndex(u=>this[i]===o.indexOf(u)),a=o.indexOf(f<I.length-1?I[f+1]:I[0]);this.setHighlightIndex(a),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},isValidLetter(t){return t.length>1?!1:t>="a"&&t<="z"||t>="A"&&t<="Z"},jumpToBeginning(){this.setHighlightIndex(0)},jumpToEnd(){this.setHighlightIndex(this._itemsLength()-1)},setHighlightIndex(t){this[i]=t,this[s]=this._getItemId(t),this._itemsLength()&&h&&this[h](t)},setHighlightId(t){this[s]=t,this[i]=this._getItemIndex(t),this._itemsLength()&&h&&this[h](this._getItemIndex(t))},_getItemIndex(t){const o=this._getListElement();return o?Array.from(o.querySelectorAll(`[role="${e}"], #sr-only-close-button`)).indexOf(o.querySelector(`#${t}`)):void 0},_getItemId(t){var I;const o=this._getListElement();if(o)return(I=o.querySelectorAll(`[role="${e}"], #sr-only-close-button`)[t])==null?void 0:I.id},scrollActiveItemIntoViewIfNeeded(){if(!this.scrollToOnHighlight)return;const t=this[r];if(t){const o=this._getListElement();this.scrollElementIntoViewIfNeeded(t,null,null,o)}},focusActiveItemIfNeeded(){if(!this.focusOnKeyboardNavigation)return;const t=this[r];t&&t.focus()}}});exports.K=_;
2
+ //# sourceMappingURL=keyboard_list_navigation-N74Bpdq7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard_list_navigation-N74Bpdq7.js","sources":["../../common/mixins/dom.js","../../common/mixins/keyboard_list_navigation.js"],"sourcesContent":["export default {\n methods: {\n /**\n * Scroll an element into view if it is not fully visible in its nearest scrollable ancestor.\n * @param {Element} ref\n */\n scrollElementIntoViewIfNeeded (ref, opt_center, opt_behavior, opt_parent) {\n if (ref.scrollIntoViewIfNeeded) {\n this.scrollIntoViewIfNeeded(ref, opt_center, opt_behavior, opt_parent);\n } else {\n this.scrollIntoView(ref, 'bottom', false, opt_behavior, opt_parent);\n }\n },\n\n /**\n * Scroll an element to the top or bottom of its scroll ancestor.\n * @param {Element} ref\n */\n scrollElementIntoView (ref, opt_scrollToTop, opt_behavior, opt_parent) {\n if (opt_scrollToTop === 'center') {\n this.scrollIntoView(ref, 'center', false, opt_behavior, opt_parent);\n return;\n }\n\n if (opt_scrollToTop === false) {\n this.scrollIntoView(ref, 'bottom', false, opt_behavior, opt_parent);\n } else {\n this.scrollIntoView(ref, 'top', false, opt_behavior, opt_parent);\n }\n },\n\n scrollIntoViewIfNeeded (ref, opt_center, opt_behavior, opt_parent) {\n const dir = opt_center ? 'center' : undefined;\n this.scrollIntoView(ref, dir, true, opt_behavior, opt_parent);\n },\n\n scrollIntoView (ref, opt_dir, opt_ifNeeded, opt_behavior, opt_parent) {\n if (!ref || !ref.parentElement) {\n return;\n }\n const offsetTop = ref.offsetTop;\n const refParent = opt_parent || ref.parentElement;\n const scrollBounds = this._getScrollBounds(refParent);\n const parentHeight = scrollBounds.bottom - scrollBounds.top;\n const elHeight = this._getElementHeight(ref);\n const offsetBottom = offsetTop + elHeight;\n let scrollTop = -1;\n switch (opt_dir) {\n case 'top':\n scrollTop = offsetTop;\n break;\n case 'center':\n scrollTop = offsetTop + (elHeight - parentHeight) / 2;\n break;\n case 'bottom':\n scrollTop = scrollTop = offsetBottom - parentHeight;\n break;\n default:\n // Go to the closest edge if needed and no direction is provided.\n if (offsetTop - scrollBounds.top <= (parentHeight / 2)) {\n // Lock it to the top edge.\n scrollTop = offsetTop;\n } else {\n scrollTop = offsetBottom - parentHeight;\n }\n break;\n }\n this._setScrollTop(refParent, scrollTop, scrollBounds, offsetTop, offsetBottom, opt_ifNeeded, opt_behavior);\n },\n\n _setScrollTop (el, scrollTop, bounds, offsetTop, offsetBottom, opt_isNeeded, opt_behavior) {\n bounds = bounds || this._getScrollBounds(el);\n const parentHeight = bounds.bottom - bounds.top;\n if (opt_isNeeded && this._inScrollBounds(offsetTop, offsetBottom, bounds)) {\n // Then lock to the top or bottom if it's hanging off the edge.\n if (offsetTop < bounds.top) {\n // Snap it to the top.\n scrollTop = offsetTop;\n } else if (offsetBottom > bounds.bottom) {\n scrollTop = offsetBottom - parentHeight;\n } else {\n return;\n }\n }\n\n if (opt_behavior) {\n el.scrollTo({ top: scrollTop, behavior: opt_behavior });\n } else {\n el.scrollTop = scrollTop;\n }\n },\n\n _getElementHeight (el) {\n return el.getBoundingClientRect().height;\n },\n\n _getScrollBounds (el) {\n const height = this._getElementHeight(el);\n const scrollTop = el.scrollTop;\n return {\n top: scrollTop,\n bottom: scrollTop + height,\n };\n },\n\n _inScrollBounds (top, bottom, bounds) {\n // Since we read from top to bottom, we want more than 3/4 to be visible at the top\n // (bc you're looking at the bottom half) or a quarter visible at the bottom (bc you\n // can read the beginning of it)\n\n const height = bottom - top;\n return (bottom <= bounds.bottom + (3 * height / 4)) && (top >= bounds.top - (height / 4));\n },\n },\n};\n","import Dom from './dom';\n\nconst ERROR_INVALID_LIST_ELEMENT = (\n 'listElementKey is required or the referenced ' +\n 'element doesn\\'t exist. Received listElement: '\n);\n\n/**\n * Usage: `mixins: [keyboardNavigationMixin(options)]`\n *\n * This mixin provides some common data and methods to navigate a list of items\n * (such as a dropdown or select menu) by keyboard.\n *\n * To be effective, you must bind the onUpKey and onDownKey events, usually to\n * the root element of the component.\n *\n * @param listItemRole\n * @param indexKey\n * @param idKey\n * @param listElementKey\n * @param activeItemKey\n * @param openMethod\n * @param afterHighlightMethod\n * @param beginningOfListMethod\n * @param endOfListMethod\n * @param scrollToOnHighlight\n * @param focusOnKeyboardNavigation\n * @displayName Keyboard Navigation Mixin\n */\nexport default ({\n // Role of the list items in the component. This is used to identify the list items\n // so you must update this if the role of your list items is anything other than 'option'\n listItemRole = 'option',\n // Key of the data prop that will be added to the component.\n indexKey = 'highlightIndex',\n idKey = 'highlightId',\n // Key of the method that references the list element.\n listElementKey = 'listRef',\n // Optional, Key of the computed prop that references the currently active item element.\n activeItemKey = '',\n // Optional, name of the method that toggles the list visibility. Used for\n // opening the list when up or down is pressed.\n openMethod = null,\n // Optional, method to call when the highlightIndex is changed.\n afterHighlightMethod = null,\n // Optional, method to call when the highlightIndex goes past the beginning of the list.\n beginningOfListMethod = null,\n // Optional, method to call when the highlightIndex goes past the end of the list.\n endOfListMethod = null,\n // Scroll the active element into view when highlighted by a keyboard event.\n scrollToOnHighlight = true,\n // Focus the active element on keyboard navigation.\n focusOnKeyboardNavigation = false,\n} = {}) => ({\n mixins: [Dom],\n\n data () {\n return {\n [indexKey]: -1,\n [idKey]: '',\n scrollToOnHighlight,\n focusOnKeyboardNavigation,\n };\n },\n\n provide () {\n return {\n highlightId: () => this[idKey],\n };\n },\n\n methods: {\n // Returns the list element\n // this[listElement]() can return a Vue component, in which case we need to target\n // the $el property, or it can simply be an html element.\n _getListElement () {\n return this[listElementKey]()?.$el || this[listElementKey]();\n },\n\n // Gets the length of all the items in the list, uses the listItemRole param to determine\n // whether an element is a list item.\n _itemsLength () {\n const listItems = this._getListItemNodes();\n\n if (listItems === null) {\n return 0;\n }\n\n return listItems.length;\n },\n\n // Gets all the list item nodes within the list element\n _getListItemNodes () {\n const listElement = this._getListElement();\n\n if (!listElement) {\n console.error(ERROR_INVALID_LIST_ELEMENT, listElement);\n return null;\n }\n\n return Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n },\n\n onUpKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] > 0) {\n this.setHighlightIndex(this[indexKey] - 1);\n } else if (beginningOfListMethod) {\n this[beginningOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onDownKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] < this._itemsLength() - 1) {\n this.setHighlightIndex(this[indexKey] + 1);\n } else if (endOfListMethod) {\n this[endOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onHomeKey () {\n this.jumpToBeginning();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onEndKey () {\n this.jumpToEnd();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onNavigationKey (key) {\n const listItems = this._getListItemNodes();\n\n const matchingItems = listItems.filter(item => {\n const content = item.textContent.trim().toLowerCase();\n return content.startsWith(key.toLowerCase());\n });\n\n if (matchingItems.length <= 0) {\n return;\n }\n\n const highlightedMatchingItemIndex = matchingItems.findIndex(item => {\n return this[indexKey] === listItems.indexOf(item);\n });\n\n const nextHighlightedItemIndex = listItems.indexOf(\n highlightedMatchingItemIndex < matchingItems.length - 1\n ? matchingItems[highlightedMatchingItemIndex + 1]\n : matchingItems[0],\n );\n\n this.setHighlightIndex(nextHighlightedItemIndex);\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n isValidLetter (key) {\n if (key.length > 1) {\n return false;\n }\n\n return (key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z');\n },\n\n jumpToBeginning () {\n this.setHighlightIndex(0);\n },\n\n jumpToEnd () {\n this.setHighlightIndex(this._itemsLength() - 1);\n },\n\n setHighlightIndex (num) {\n this[indexKey] = num;\n this[idKey] = this._getItemId(num);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](num);\n }\n },\n\n setHighlightId (id) {\n this[idKey] = id;\n this[indexKey] = this._getItemIndex(id);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](this._getItemIndex(id));\n }\n },\n\n _getItemIndex (id) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n const listItems = Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n return listItems.indexOf(listElement.querySelector(`#${id}`));\n },\n\n _getItemId (index) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n return listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`)[index]?.id;\n },\n\n scrollActiveItemIntoViewIfNeeded () {\n if (!this.scrollToOnHighlight) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n // When listElementKey is not passed,\n // scrollElementIntoViewIfNeeded will default to the immediate wrapper of the item.\n const listElement = this._getListElement();\n this.scrollElementIntoViewIfNeeded(activeItemEl, null, null, listElement);\n }\n },\n\n focusActiveItemIfNeeded () {\n if (!this.focusOnKeyboardNavigation) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n activeItemEl.focus();\n }\n },\n },\n});\n"],"names":["Dom","ref","opt_center","opt_behavior","opt_parent","opt_scrollToTop","dir","opt_dir","opt_ifNeeded","offsetTop","refParent","scrollBounds","parentHeight","elHeight","offsetBottom","scrollTop","el","bounds","opt_isNeeded","height","top","bottom","ERROR_INVALID_LIST_ELEMENT","KeyboardNavigation","listItemRole","indexKey","idKey","listElementKey","activeItemKey","openMethod","afterHighlightMethod","beginningOfListMethod","endOfListMethod","scrollToOnHighlight","focusOnKeyboardNavigation","_a","listItems","listElement","key","matchingItems","item","highlightedMatchingItemIndex","nextHighlightedItemIndex","num","id","index","activeItemEl"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const t="danger",s="warning",d="success",n="muted",e="inverted",i="mention",c=["",t,s,d,n,e,i],o={default:"",warning:"d-link--warning",danger:"d-link--danger",success:"d-link--success",muted:"d-link--muted",inverted:"d-link--inverted",mention:"d-link--mention"};exports.I=e;exports.L=c;exports.M=n;exports.a=o;
2
+ //# sourceMappingURL=link_constants-Kn6kP4i1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link_constants-Kn6kP4i1.js","sources":["../../components/link/link_constants.js"],"sourcesContent":["export const DANGER = 'danger';\nexport const WARNING = 'warning';\nexport const SUCCESS = 'success';\nexport const MUTED = 'muted';\nexport const INVERTED = 'inverted';\nexport const MENTION = 'mention';\nexport const LINK_VARIANTS = ['', DANGER, WARNING, SUCCESS, MUTED, INVERTED, MENTION];\n\nexport const LINK_KIND_MODIFIERS = {\n default: '',\n warning: 'd-link--warning',\n danger: 'd-link--danger',\n success: 'd-link--success',\n muted: 'd-link--muted',\n inverted: 'd-link--inverted',\n mention: 'd-link--mention',\n};\n\nexport default {\n LINK_VARIANTS,\n LINK_KIND_MODIFIERS,\n};\n"],"names":["DANGER","WARNING","SUCCESS","MUTED","INVERTED","MENTION","LINK_VARIANTS","LINK_KIND_MODIFIERS"],"mappings":"aAAO,MAAMA,EAAS,SACTC,EAAU,UACVC,EAAU,UACVC,EAAQ,QACRC,EAAW,WACXC,EAAU,UACVC,EAAgB,CAAC,GAAIN,EAAQC,EAASC,EAASC,EAAOC,EAAUC,CAAO,EAEvEE,EAAsB,CACjC,QAAS,GACT,QAAS,kBACT,OAAQ,iBACR,QAAS,kBACT,MAAO,gBACP,SAAU,mBACV,QAAS,iBACX"}
@@ -0,0 +1,2 @@
1
+ "use strict";const T={DEFAULT:"default",CUSTOM:"custom"},t={ARROW_KEYS:"arrow-keys",TAB:"tab",NONE:"none"};exports.L=T;exports.a=t;
2
+ //# sourceMappingURL=list_item_constants-Tsz5CO1m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_item_constants-Tsz5CO1m.js","sources":["../../components/list_item/list_item_constants.js"],"sourcesContent":["export const LIST_ITEM_TYPES = {\n DEFAULT: 'default',\n CUSTOM: 'custom',\n};\n\nexport const LIST_ITEM_NAVIGATION_TYPES = {\n ARROW_KEYS: 'arrow-keys',\n TAB: 'tab',\n NONE: 'none',\n};\n\nexport default {\n LIST_ITEM_TYPES,\n LIST_ITEM_NAVIGATION_TYPES,\n};\n"],"names":["LIST_ITEM_TYPES","LIST_ITEM_NAVIGATION_TYPES"],"mappings":"aAAY,MAACA,EAAkB,CAC7B,QAAS,UACT,OAAQ,QACV,EAEaC,EAA6B,CACxC,WAAY,aACZ,IAAK,MACL,KAAM,MACR"}
@@ -0,0 +1,2 @@
1
+ "use strict";const o=':not(:disabled):not([aria-disabled="true"]):not([role="presentation"])',r=`${o}:not([tabindex="-1"])`,a="button,[href],input,select,textarea,details,[tabindex]",c={methods:{async getFirstFocusableElement(e){await this.$nextTick();const t=this._getFocusableElements(e,!0);return this._getFirstFocusElement(t)},async focusFirstElement(e=this.$el){const t=await this.getFirstFocusableElement(e);t==null||t.focus({preventScroll:!0})},async focusElementById(e){var s;await this.$nextTick();const t=(s=this.$el)==null?void 0:s.querySelector(e);if(t){t.focus();return}console.warn('Could not find the element specified in dt-modal prop "initialFocusElement". Defaulting to focusing the first element.'),await this.focusFirstElement()},_getFirstFocusElement(e){if(!e.length)return;let t=e[0];return t.matches('[type="radio"]:not(:checked)')&&(t=e.find(s=>s.checked&&s.name===t.name)||t),t},_getFocusableElements(e=this.$el,t=!1){return e?[...e.querySelectorAll(a)].filter(n=>{const i=window.getComputedStyle(n);return i.getPropertyValue("display")!=="none"&&i.getPropertyValue("visibility")!=="hidden"&&n.matches(t?o:r)}):[]},focusTrappedTabPress(e,t){if(!(e.key==="Tab"))return;const n=this._getFocusableElements(t);if(!n.length){e.preventDefault();return}const i=this._getFirstFocusElement(n),l=n[n.length-1];e.shiftKey?document.activeElement===i&&(l.focus(),e.preventDefault()):document.activeElement===l&&(i.focus(),e.preventDefault())}}};exports.M=c;
2
+ //# sourceMappingURL=modal-qEzlo0Sj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-qEzlo0Sj.js","sources":["../../common/mixins/modal.js"],"sourcesContent":["const focusableAttrs = ':not(:disabled):not([aria-disabled=\"true\"]):not([role=\"presentation\"])';\nconst tabbableAttrs = `${focusableAttrs}:not([tabindex=\"-1\"])`;\nconst focusableElementsList = `button,[href],input,select,textarea,details,[tabindex]`;\n\n/**\n * This mixin provides the methods to automatically trap tab focus within\n * the component this mixin is on, meaning it is not possible to tab out\n * of the component without dismissing it.\n *\n * Useful for accessibility reasons on things like important actionable alerts.\n *\n * Use focusFirstElement to focus on the first tabbable element within your component, and call\n * focusTrappedTabPress every time tab is pressed to trap tab within this\n * component.\n *\n * Note that focusFirstElement WILL focus elements with tabindex=\"-1\",\n * however focusTrappedTabPress will not.\n * @displayName Modal Mixin\n */\nexport default {\n methods: {\n /**\n * get the first focusable element in your component, includes tabindex=\"-1\".\n * @param {object} el - optional - ref of dom element to trap focus on.\n * will default to the root node of the vue component\n */\n async getFirstFocusableElement (el) {\n await this.$nextTick();\n const focusableElements = this._getFocusableElements(el, true);\n return this._getFirstFocusElement(focusableElements);\n },\n\n /**\n * set focus to the first focusable element in your component, includes tabindex=\"-1\".\n * @param {object} el - optional - ref of dom element to trap focus on.\n * will default to the root node of the vue component\n */\n async focusFirstElement (el = this.$el) {\n const elToFocus = await this.getFirstFocusableElement(el);\n elToFocus?.focus({ preventScroll: true });\n },\n\n async focusElementById (elementId) {\n await this.$nextTick();\n const result = this.$el?.querySelector(elementId);\n if (result) {\n result.focus();\n return;\n }\n\n // eslint-disable-next-line no-console\n console.warn('Could not find the element specified in dt-modal prop \"initialFocusElement\". ' +\n 'Defaulting to focusing the first element.');\n await this.focusFirstElement();\n },\n\n /**\n * internal use only.\n *\n * @param focusableElements - list of focusable elements\n * @returns {*} - first DOM element that is focusable.\n * @private\n */\n _getFirstFocusElement (focusableElements) {\n if (!focusableElements.length) {\n return;\n }\n let firstFocusEl = focusableElements[0];\n // If first element is a checkbox, put focus on the selected checkbox or the first checkbox if none are selected.\n if (firstFocusEl.matches('[type=\"radio\"]:not(:checked)')) {\n firstFocusEl = focusableElements.find(el => el.checked && el.name === firstFocusEl.name) || firstFocusEl;\n }\n return firstFocusEl;\n },\n\n /**\n * internal use only.\n *\n * gets all the focusable elements within the component\n * and sets the first and last of those elements.\n *\n * @param {object} el - the root dom element to find focusable elements in.\n * @param {bool} includeNegativeTabIndex - will include tabindex=\"-1\" in the list of focusable elements.\n */\n _getFocusableElements (el = this.$el, includeNegativeTabIndex = false) {\n if (!el) return [];\n const focusableContent = [...el.querySelectorAll(focusableElementsList)];\n return focusableContent.filter((fc) => {\n const style = window.getComputedStyle(fc);\n return style.getPropertyValue('display') !== 'none' &&\n style.getPropertyValue('visibility') !== 'hidden' &&\n fc.matches(includeNegativeTabIndex ? focusableAttrs : tabbableAttrs);\n });\n },\n\n /**\n * tabs to the next element contained within your component, does not include tabindex=\"-1\".\n * @param {object} e - keypress event\n * @param {object} el - optional - ref of dom element to trap focus on.\n * will default to the root node of the vue component\n */\n focusTrappedTabPress (e, el) {\n const isTabPressed = e.key === 'Tab';\n\n if (!isTabPressed) {\n return;\n }\n\n const focusableElements = this._getFocusableElements(el);\n if (!focusableElements.length) {\n e.preventDefault();\n return;\n }\n\n const firstFocusableElement = this._getFirstFocusElement(focusableElements);\n const lastFocusableElement = focusableElements[focusableElements.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus();\n e.preventDefault();\n }\n } else {\n if (document.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n e.preventDefault();\n }\n }\n },\n },\n};\n"],"names":["focusableAttrs","tabbableAttrs","focusableElementsList","Modal","el","focusableElements","elToFocus","elementId","result","_a","firstFocusEl","includeNegativeTabIndex","fc","style","firstFocusableElement","lastFocusableElement"],"mappings":"aAAA,MAAMA,EAAiB,yEACjBC,EAAgB,GAAGD,CAAc,wBACjCE,EAAwB,yDAiBfC,EAAA,CACb,QAAS,CAMP,MAAM,yBAA0BC,EAAI,CAClC,MAAM,KAAK,YACX,MAAMC,EAAoB,KAAK,sBAAsBD,EAAI,EAAI,EAC7D,OAAO,KAAK,sBAAsBC,CAAiB,CACpD,EAOD,MAAM,kBAAmBD,EAAK,KAAK,IAAK,CACtC,MAAME,EAAY,MAAM,KAAK,yBAAyBF,CAAE,EACxDE,GAAA,MAAAA,EAAW,MAAM,CAAE,cAAe,EAAM,EACzC,EAED,MAAM,iBAAkBC,EAAW,OACjC,MAAM,KAAK,YACX,MAAMC,GAASC,EAAA,KAAK,MAAL,YAAAA,EAAU,cAAcF,GACvC,GAAIC,EAAQ,CACVA,EAAO,MAAK,EACZ,MACD,CAGD,QAAQ,KAAK,wHACgC,EAC7C,MAAM,KAAK,mBACZ,EASD,sBAAuBH,EAAmB,CACxC,GAAI,CAACA,EAAkB,OACrB,OAEF,IAAIK,EAAeL,EAAkB,CAAC,EAEtC,OAAIK,EAAa,QAAQ,8BAA8B,IACrDA,EAAeL,EAAkB,KAAKD,GAAMA,EAAG,SAAWA,EAAG,OAASM,EAAa,IAAI,GAAKA,GAEvFA,CACR,EAWD,sBAAuBN,EAAK,KAAK,IAAKO,EAA0B,GAAO,CACrE,OAAKP,EACoB,CAAC,GAAGA,EAAG,iBAAiBF,CAAqB,CAAC,EAC/C,OAAQU,GAAO,CACrC,MAAMC,EAAQ,OAAO,iBAAiBD,CAAE,EACxC,OAAOC,EAAM,iBAAiB,SAAS,IAAM,QAC3CA,EAAM,iBAAiB,YAAY,IAAM,UACzCD,EAAG,QAAQD,EAA0BX,EAAiBC,CAAa,CAC7E,CAAO,EAPe,EAQjB,EAQD,qBAAsB,EAAGG,EAAI,CAG3B,GAAI,EAFiB,EAAE,MAAQ,OAG7B,OAGF,MAAMC,EAAoB,KAAK,sBAAsBD,CAAE,EACvD,GAAI,CAACC,EAAkB,OAAQ,CAC7B,EAAE,eAAc,EAChB,MACD,CAED,MAAMS,EAAwB,KAAK,sBAAsBT,CAAiB,EACpEU,EAAuBV,EAAkBA,EAAkB,OAAS,CAAC,EAEvE,EAAE,SACA,SAAS,gBAAkBS,IAC7BC,EAAqB,MAAK,EAC1B,EAAE,eAAc,GAGd,SAAS,gBAAkBA,IAC7BD,EAAsB,MAAK,EAC3B,EAAE,eAAc,EAGrB,CACF,CACH"}
@@ -0,0 +1,2 @@
1
+ "use strict";const c=require("./notice_constants-mC6al2Dm.js"),o=require("./_plugin-vue2_normalizer-ZK80B3OL.js"),i=require("../lib/icon.cjs"),s=require("./sr_only_close_button-ErijKGYR.js"),l=require("../lib/button.cjs"),a=new Map([["info","info"],["success","check-circle"],["warning","alert-triangle"],["error","alert-circle"],["base","bell"]]),r={name:"DtNoticeIcon",components:{DtIcon:i.DtIcon},props:{kind:{type:String,default:"base",validate(n){return c.N.includes(n)}}},computed:{defaultIcon(){return a.get(this.kind)}}};var u=function(){var t=this,e=t._self._c;return t.defaultIcon||t.$slots.default?e("div",{staticClass:"d-notice__icon",attrs:{"aria-hidden":"true"}},[t._t("default",function(){return[e("dt-icon",{attrs:{name:t.defaultIcon,size:"400"}})]})],2):t._e()},d=[],_=o.n(r,u,d,!1,null,null,null,null);const f=_.exports,p={name:"DtNoticeContent",props:{title:{type:String,default:""},titleId:{type:String,default:void 0},contentId:{type:String,default:void 0}}};var m=function(){var t=this,e=t._self._c;return e("div",{staticClass:"d-notice__content",attrs:{"data-qa":"notice-content"}},[t.title||t.$slots.titleOverride?e("p",{staticClass:"d-notice__title",attrs:{id:t.titleId,"data-qa":"notice-content-title"}},[t._t("titleOverride",function(){return[t._v(" "+t._s(t.title)+" ")]})],2):t._e(),e("p",{staticClass:"d-notice__message",attrs:{id:t.contentId,"data-qa":"notice-content-message"}},[t._t("default")],2)])},v=[],h=o.n(p,m,v,!1,null,null,null,null);const b=h.exports,y={name:"DtNoticeAction",components:{DtIcon:i.DtIcon,DtButton:l.DtButton,SrOnlyCloseButton:s.S},mixins:[s.a],props:{closeButtonProps:{type:Object,default:()=>({})},hideClose:{type:Boolean,default:!1},hideAction:{type:Boolean,default:!1}},emits:["close"],computed:{noticeActionListeners(){return{...this.$listeners,click:n=>{this.close(),this.$emit("click",n)}}}},created(){!this.hideClose&&!this.closeButtonProps.ariaLabel&&console.error("Invalid props: you must pass in closeButtonProps.ariaLabel if the close button is displayed.")},mounted(){this.hideClose||(this.lastFocusedElement=document.activeElement)},beforeDestroy(){var n;(n=this.lastFocusedElement)==null||n.focus()},methods:{close(){this.$emit("close")}}};var C=function(){var t=this,e=t._self._c;return e("div",{staticClass:"d-notice__actions",attrs:{"data-qa":"notice-content-actions"}},[t.hideAction?t._e():t._t("default"),t.hideClose?t._e():e("dt-button",t._g(t._b({ref:"closeButton",attrs:{"data-qa":"dt-notice-action-close-button",size:"sm",importance:"clear",circle:"","aria-label":t.closeButtonProps.ariaLabel?t.closeButtonProps.ariaLabel:"Close"},scopedSlots:t._u([{key:"icon",fn:function(){return[e("dt-icon",{attrs:{name:"close",size:"200"}})]},proxy:!0}],null,!1,1154370889)},"dt-button",t.closeButtonProps,!1),t.noticeActionListeners)),t.showVisuallyHiddenClose?e("sr-only-close-button",{attrs:{"visually-hidden-close-label":t.visuallyHiddenCloseLabel},on:{close:t.close}}):t._e()],2)},I=[],D=o.n(y,C,I,!1,null,null,null,null);const $=D.exports;exports.D=$;exports.a=f;exports.b=b;
2
+ //# sourceMappingURL=notice_action-u3ZKIhit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notice_action-u3ZKIhit.js","sources":["../../components/notice/notice_icon.vue","../../components/notice/notice_content.vue","../../components/notice/notice_action.vue"],"sourcesContent":["<template>\n <div\n v-if=\"defaultIcon || $slots.default\"\n aria-hidden=\"true\"\n class=\"d-notice__icon\"\n >\n <!-- @slot Slot for the main content -->\n <slot>\n <dt-icon\n :name=\"defaultIcon\"\n size=\"400\"\n />\n </slot>\n </div>\n</template>\n\n<script>\nimport { DtIcon } from '@/components/icon';\nimport { NOTICE_KINDS } from './notice_constants';\n\nconst kindToIcon = new Map([\n ['info', 'info'],\n ['success', 'check-circle'],\n ['warning', 'alert-triangle'],\n ['error', 'alert-circle'],\n ['base', 'bell'],\n]);\n\nexport default {\n name: 'DtNoticeIcon',\n\n components: {\n DtIcon,\n },\n\n props: {\n /**\n * Kind of icon\n * @values base, error, info, success, warning\n */\n kind: {\n type: String,\n default: 'base',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n },\n\n computed: {\n defaultIcon () {\n return kindToIcon.get(this.kind);\n },\n },\n};\n</script>\n","<template>\n <div\n class=\"d-notice__content\"\n data-qa=\"notice-content\"\n >\n <p\n v-if=\"title || $slots.titleOverride\"\n :id=\"titleId\"\n class=\"d-notice__title\"\n data-qa=\"notice-content-title\"\n >\n <!-- @slot Slot for the title -->\n <slot name=\"titleOverride\">\n {{ title }}\n </slot>\n </p>\n <p\n :id=\"contentId\"\n class=\"d-notice__message\"\n data-qa=\"notice-content-message\"\n >\n <!-- @slot Slot for main content -->\n <slot />\n </p>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'DtNoticeContent',\n\n props: {\n /**\n * Title header of the notice. This can be left blank to remove the title from the notice entirely.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * ID for the title element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the title.\n */\n titleId: {\n type: String,\n default: undefined,\n },\n\n /**\n * ID for the content element of the component. Useful for aria-describedby\n * or aria-labelledby or any other reason you may need an id to refer to the content.\n */\n contentId: {\n type: String,\n default: undefined,\n },\n },\n};\n</script>\n","<template>\n <div\n class=\"d-notice__actions\"\n data-qa=\"notice-content-actions\"\n >\n <!-- @slot Slot for main content -->\n <slot v-if=\"!hideAction\" />\n <dt-button\n v-if=\"!hideClose\"\n ref=\"closeButton\"\n data-qa=\"dt-notice-action-close-button\"\n size=\"sm\"\n importance=\"clear\"\n circle\n :aria-label=\"closeButtonProps.ariaLabel ? closeButtonProps.ariaLabel : 'Close'\"\n v-bind=\"closeButtonProps\"\n v-on=\"noticeActionListeners\"\n >\n <template #icon>\n <dt-icon\n name=\"close\"\n size=\"200\"\n />\n </template>\n </dt-button>\n <sr-only-close-button\n v-if=\"showVisuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n @close=\"close\"\n />\n </div>\n</template>\n\n<script>\nimport { DtIcon } from '@/components/icon';\nimport { DtButton } from '@/components/button';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\n\nexport default {\n name: 'DtNoticeAction',\n\n components: {\n DtIcon,\n DtButton,\n SrOnlyCloseButton,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * Props for the notice close button.\n */\n closeButtonProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Hides the close button from the notice\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Hides the action from the notice\n * @values true, false\n */\n hideAction: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Close button click event\n *\n * @event close\n */\n 'close',\n ],\n\n computed: {\n noticeActionListeners () {\n return {\n ...this.$listeners,\n\n click: event => {\n this.close();\n this.$emit('click', event);\n },\n };\n },\n },\n\n created () {\n if (!this.hideClose && !this.closeButtonProps.ariaLabel) {\n console.error('Invalid props: you must pass in closeButtonProps.ariaLabel if the close button is displayed.');\n }\n },\n\n mounted () {\n if (!this.hideClose) {\n this.lastFocusedElement = document.activeElement;\n }\n },\n\n beforeDestroy () {\n this.lastFocusedElement?.focus();\n },\n\n methods: {\n close () {\n this.$emit('close');\n },\n },\n};\n</script>\n"],"names":["kindToIcon","_sfc_main","DtIcon","kind","NOTICE_KINDS","DtButton","SrOnlyCloseButton","SrOnlyCloseButtonMixin","event","_a"],"mappings":"8NAoBAA,EAAA,IAAA,IAAA,CACA,CAAA,OAAA,MAAA,EACA,CAAA,UAAA,cAAA,EACA,CAAA,UAAA,gBAAA,EACA,CAAA,QAAA,cAAA,EACA,CAAA,OAAA,MAAA,CACA,CAAA,EAEAC,EAAA,CACA,KAAA,eAEA,WAAA,CACA,OAAAC,EAAA,MACA,EAEA,MAAA,CAKA,KAAA,CACA,KAAA,OACA,QAAA,OACA,SAAAC,EAAA,CACA,OAAAC,EAAA,EAAA,SAAAD,CAAA,CACA,CACA,CACA,EAEA,SAAA,CACA,aAAA,CACA,OAAAH,EAAA,IAAA,KAAA,IAAA,CACA,CACA,CACA,uTC1BAC,EAAA,CACA,KAAA,kBAEA,MAAA,CAIA,MAAA,CACA,KAAA,OACA,QAAA,EACA,EAMA,QAAA,CACA,KAAA,OACA,QAAA,MACA,EAMA,UAAA,CACA,KAAA,OACA,QAAA,MACA,CACA,CACA,mgBCnBAA,EAAA,CACA,KAAA,iBAEA,WAAA,CACA,OAAAC,EAAA,OACA,SAAAG,EAAA,SACA,kBAAAC,EAAA,CACA,EAEA,OAAA,CAAAC,EAAAA,CAAA,EAEA,MAAA,CAIA,iBAAA,CACA,KAAA,OACA,QAAA,KAAA,CAAA,EACA,EAMA,UAAA,CACA,KAAA,QACA,QAAA,EACA,EAMA,WAAA,CACA,KAAA,QACA,QAAA,EACA,CACA,EAEA,MAAA,CAMA,OACA,EAEA,SAAA,CACA,uBAAA,CACA,MAAA,CACA,GAAA,KAAA,WAEA,MAAAC,GAAA,CACA,KAAA,MAAA,EACA,KAAA,MAAA,QAAAA,CAAA,CACA,CACA,CACA,CACA,EAEA,SAAA,CACA,CAAA,KAAA,WAAA,CAAA,KAAA,iBAAA,WACA,QAAA,MAAA,8FAAA,CAEA,EAEA,SAAA,CACA,KAAA,YACA,KAAA,mBAAA,SAAA,cAEA,EAEA,eAAA,QACAC,EAAA,KAAA,qBAAA,MAAAA,EAAA,OACA,EAEA,QAAA,CACA,OAAA,CACA,KAAA,MAAA,OAAA,CACA,CACA,CACA"}
@@ -0,0 +1,2 @@
1
+ "use strict";const s=["base","error","info","success","warning"],t=["alert","alertdialog","status"];exports.N=s;exports.a=t;
2
+ //# sourceMappingURL=notice_constants-mC6al2Dm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notice_constants-mC6al2Dm.js","sources":["../../components/notice/notice_constants.js"],"sourcesContent":["export const NOTICE_KINDS = ['base', 'error', 'info', 'success', 'warning'];\nexport const NOTICE_ROLES = ['alert', 'alertdialog', 'status'];\n\nexport default {\n NOTICE_KINDS,\n NOTICE_ROLES,\n};\n"],"names":["NOTICE_KINDS","NOTICE_ROLES"],"mappings":"aAAY,MAACA,EAAe,CAAC,OAAQ,QAAS,OAAQ,UAAW,SAAS,EAC7DC,EAAe,CAAC,QAAS,cAAe,QAAQ"}
@@ -0,0 +1,2 @@
1
+ "use strict";const s=require("tippy.js"),c=e=>({name:"arrowDetected",enabled:!0,phase:"main",fn:e,requiresIfExists:["offset"]}),i=["bottom","bottom-start","bottom-end","right","right-start","right-end","left","left-start","left-end","top","top-start","top-end"],d=[!0,!1,"reference","popper"],O=(e,t)=>{const{contentElement:n}={...t};return delete t.contentElement,s(e,{...t,plugins:[s.sticky],render:()=>p(n)})},_=({boundary:e="clippingParents",fallbackPlacements:t=[],onChangePlacement:n=()=>{},hasHideModifierEnabled:r=!1,tether:o=!0}={})=>({modifiers:[{name:"flip",options:{fallbackPlacements:t,boundary:e}},{name:"hide",enabled:r},{name:"preventOverflow",options:{altAxis:!o,tether:o}},c(({state:l})=>{n(l.placement)})]}),E=e=>{const t=document.createElement("span");return t.innerText=e.innerText||"",e.innerText="",e.appendChild(t),t},P=e=>{const t=e==null?void 0:e.children[0];return t||E(e)},p=e=>{const t=document.createElement("div");return t.className="tippy-box d-ps-absolute",t.appendChild(e),{popper:t}},T=[...i],I=300,a={hover:"d-tooltip--hover",show:"d-tooltip--show",inverted:"d-tooltip--inverted",hide:"d-tooltip--hide"},m=[...d],S=[!0,!1,"toggle"],u={none:void 0,small:"d-p4",medium:"d-p8",large:"d-p16"},A={none:void 0,small:"d-pl4",medium:"d-pl8",large:"d-pl16"},f=["dialog","menu","listbox","tree","grid"],g=["","anchor"],R=["none","dialog","first"],D=["parent","body"],C=[...d],L=[...i];exports.P=u;exports.T=T;exports.a=A;exports.b=f;exports.c=g;exports.d=R;exports.e=D;exports.f=C;exports.g=L;exports.h=I;exports.i=a;exports.j=m;exports.k=S;exports.l=_;exports.m=P;exports.n=O;
2
+ //# sourceMappingURL=popover_constants-hOEhklvr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover_constants-hOEhklvr.js","sources":["../../components/tooltip/modifiers.js","../../components/popover/tippy_utils.js","../../components/tooltip/tooltip_constants.js","../../components/popover/popover_constants.js"],"sourcesContent":["export const getArrowDetected = fn => ({\n name: 'arrowDetected',\n enabled: true,\n phase: 'main',\n fn,\n requiresIfExists: ['offset'],\n});\n","import tippy, { sticky } from 'tippy.js';\nimport { getArrowDetected } from '../tooltip/modifiers';\n\nexport const BASE_TIPPY_DIRECTIONS = [\n 'bottom', 'bottom-start', 'bottom-end',\n 'right', 'right-start', 'right-end',\n 'left', 'left-start', 'left-end',\n 'top', 'top-start', 'top-end',\n];\n\nexport const TIPPY_STICKY_VALUES = [true, false, 'reference', 'popper'];\n\nexport const createTippy = (anchorElement, options) => {\n const { contentElement } = { ...options };\n delete options.contentElement;\n return tippy(anchorElement, {\n ...options,\n plugins: [sticky],\n render: () => getContentWrapper(contentElement),\n });\n};\n\nexport const getPopperOptions = ({\n boundary = 'clippingParents',\n fallbackPlacements = [],\n onChangePlacement = () => {},\n hasHideModifierEnabled = false,\n // If set to false the dialog will display over top of the anchor when there is insufficient space.\n // if set to true it will never move from its position relative to the anchor and will clip instead.\n tether = true,\n} = {}) => {\n return {\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements,\n boundary,\n },\n },\n {\n name: 'hide',\n enabled: hasHideModifierEnabled,\n },\n {\n name: 'preventOverflow',\n options: {\n altAxis: !tether,\n tether,\n },\n },\n getArrowDetected(({ state }) => {\n onChangePlacement(state.placement);\n }),\n ],\n };\n};\n\nconst createAnchor = (anchorWrapper) => {\n const span = document.createElement('span');\n span.innerText = anchorWrapper.innerText || '';\n anchorWrapper.innerText = '';\n anchorWrapper.appendChild(span);\n return span;\n};\n\nexport const getAnchor = (anchorWrapper) => {\n const anchor = anchorWrapper?.children[0];\n if (!anchor) return createAnchor(anchorWrapper);\n return anchor;\n};\n\nexport const getContentWrapper = content => {\n // The recommended structure is to use the popper as an outer wrapper\n const popper = document.createElement('div');\n popper.className = 'tippy-box d-ps-absolute';\n popper.appendChild(content);\n return {\n popper,\n };\n};\n","/*\n* Tippy directions - https://atomiks.github.io/tippyjs/v6/all-props/#placement\n* */\nimport { BASE_TIPPY_DIRECTIONS, TIPPY_STICKY_VALUES } from '@/components/popover/tippy_utils';\n\nexport const TOOLTIP_DIRECTIONS = [\n ...BASE_TIPPY_DIRECTIONS,\n];\n\nexport const TOOLTIP_DELAY_MS = 300;\n\nexport const TOOLTIP_KIND_MODIFIERS = {\n hover: `d-tooltip--hover`,\n show: `d-tooltip--show`,\n inverted: `d-tooltip--inverted`,\n hide: `d-tooltip--hide`,\n};\n\nexport const TOOLTIP_STICKY_VALUES = [\n ...TIPPY_STICKY_VALUES,\n];\n\nexport const TOOLTIP_HIDE_ON_CLICK_VARIANTS = [true, false, 'toggle'];\n\nexport default {\n TOOLTIP_DIRECTIONS,\n TOOLTIP_DELAY_MS,\n TOOLTIP_KIND_MODIFIERS,\n TOOLTIP_STICKY_VALUES,\n TOOLTIP_HIDE_ON_CLICK_VARIANTS,\n};\n","import { BASE_TIPPY_DIRECTIONS, TIPPY_STICKY_VALUES } from './tippy_utils';\n\nexport const POPOVER_PADDING_CLASSES = {\n none: undefined,\n small: 'd-p4',\n medium: 'd-p8',\n large: 'd-p16',\n};\nexport const POPOVER_HEADER_FOOTER_PADDING_CLASSES = {\n none: undefined,\n small: 'd-pl4',\n medium: 'd-pl8',\n large: 'd-pl16',\n};\nexport const POPOVER_ROLES = ['dialog', 'menu', 'listbox', 'tree', 'grid'];\nexport const POPOVER_CONTENT_WIDTHS = ['', 'anchor'];\nexport const POPOVER_INITIAL_FOCUS_STRINGS = ['none', 'dialog', 'first'];\nexport const POPOVER_APPEND_TO_VALUES = ['parent', 'body'];\nexport const POPOVER_STICKY_VALUES = [\n ...TIPPY_STICKY_VALUES,\n];\nexport const POPOVER_DIRECTIONS = [\n ...BASE_TIPPY_DIRECTIONS,\n];\n\nexport default {\n POPOVER_PADDING_CLASSES,\n POPOVER_HEADER_FOOTER_PADDING_CLASSES,\n POPOVER_ROLES,\n POPOVER_CONTENT_WIDTHS,\n POPOVER_INITIAL_FOCUS_STRINGS,\n POPOVER_APPEND_TO_VALUES,\n POPOVER_STICKY_VALUES,\n POPOVER_DIRECTIONS,\n};\n"],"names":["getArrowDetected","fn","BASE_TIPPY_DIRECTIONS","TIPPY_STICKY_VALUES","createTippy","anchorElement","options","contentElement","tippy","sticky","getContentWrapper","getPopperOptions","boundary","fallbackPlacements","onChangePlacement","hasHideModifierEnabled","tether","state","createAnchor","anchorWrapper","span","getAnchor","anchor","content","popper","TOOLTIP_DIRECTIONS","TOOLTIP_DELAY_MS","TOOLTIP_KIND_MODIFIERS","TOOLTIP_STICKY_VALUES","TOOLTIP_HIDE_ON_CLICK_VARIANTS","POPOVER_PADDING_CLASSES","POPOVER_HEADER_FOOTER_PADDING_CLASSES","POPOVER_ROLES","POPOVER_CONTENT_WIDTHS","POPOVER_INITIAL_FOCUS_STRINGS","POPOVER_APPEND_TO_VALUES","POPOVER_STICKY_VALUES","POPOVER_DIRECTIONS"],"mappings":"yCAAaA,EAAmBC,IAAO,CACrC,KAAM,gBACN,QAAS,GACT,MAAO,OACP,GAAAA,EACA,iBAAkB,CAAC,QAAQ,CAC7B,GCHaC,EAAwB,CACnC,SAAU,eAAgB,aAC1B,QAAS,cAAe,YACxB,OAAQ,aAAc,WACtB,MAAO,YAAa,SACtB,EAEaC,EAAsB,CAAC,GAAM,GAAO,YAAa,QAAQ,EAEzDC,EAAc,CAACC,EAAeC,IAAY,CACrD,KAAM,CAAE,eAAAC,CAAc,EAAK,CAAE,GAAGD,CAAO,EACvC,cAAOA,EAAQ,eACRE,EAAMH,EAAe,CAC1B,GAAGC,EACH,QAAS,CAACG,EAAAA,MAAM,EAChB,OAAQ,IAAMC,EAAkBH,CAAc,CAClD,CAAG,CACH,EAEaI,EAAmB,CAAC,CAC/B,SAAAC,EAAW,kBACX,mBAAAC,EAAqB,CAAE,EACvB,kBAAAC,EAAoB,IAAM,CAAE,EAC5B,uBAAAC,EAAyB,GAGzB,OAAAC,EAAS,EACX,EAAI,MACK,CACL,UAAW,CACT,CACE,KAAM,OACN,QAAS,CACP,mBAAAH,EACA,SAAAD,CACD,CACF,EACD,CACE,KAAM,OACN,QAASG,CACV,EACD,CACE,KAAM,kBACN,QAAS,CACP,QAAS,CAACC,EACV,OAAAA,CACD,CACF,EACDhB,EAAiB,CAAC,CAAE,MAAAiB,KAAY,CAC9BH,EAAkBG,EAAM,SAAS,CACzC,CAAO,CACF,CACL,GAGMC,EAAgBC,GAAkB,CACtC,MAAMC,EAAO,SAAS,cAAc,MAAM,EAC1C,OAAAA,EAAK,UAAYD,EAAc,WAAa,GAC5CA,EAAc,UAAY,GAC1BA,EAAc,YAAYC,CAAI,EACvBA,CACT,EAEaC,EAAaF,GAAkB,CAC1C,MAAMG,EAASH,GAAA,YAAAA,EAAe,SAAS,GACvC,OAAKG,GAAeJ,EAAaC,CAAa,CAEhD,EAEaT,EAAoBa,GAAW,CAE1C,MAAMC,EAAS,SAAS,cAAc,KAAK,EAC3C,OAAAA,EAAO,UAAY,0BACnBA,EAAO,YAAYD,CAAO,EACnB,CACL,OAAAC,CACJ,CACA,EC3EaC,EAAqB,CAChC,GAAGvB,CACL,EAEawB,EAAmB,IAEnBC,EAAyB,CACpC,MAAO,mBACP,KAAM,kBACN,SAAU,sBACV,KAAM,iBACR,EAEaC,EAAwB,CACnC,GAAGzB,CACL,EAEa0B,EAAiC,CAAC,GAAM,GAAO,QAAQ,ECpBvDC,EAA0B,CACrC,KAAM,OACN,MAAO,OACP,OAAQ,OACR,MAAO,OACT,EACaC,EAAwC,CACnD,KAAM,OACN,MAAO,QACP,OAAQ,QACR,MAAO,QACT,EACaC,EAAgB,CAAC,SAAU,OAAQ,UAAW,OAAQ,MAAM,EAC5DC,EAAyB,CAAC,GAAI,QAAQ,EACtCC,EAAgC,CAAC,OAAQ,SAAU,OAAO,EAC1DC,EAA2B,CAAC,SAAU,MAAM,EAC5CC,EAAwB,CACnC,GAAGjC,CACL,EACakC,EAAqB,CAChC,GAAGnC,CACL"}