@dialpad/dialtone 9.27.1 → 9.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/README.md +19 -3
  2. package/dist/css/dialtone.css +2 -2
  3. package/dist/tokens/css/variables-cox-dark.css +936 -0
  4. package/dist/tokens/css/variables-cox-light.css +816 -0
  5. package/dist/tokens/css/variables-dark.css +936 -0
  6. package/dist/tokens/css/variables-light.css +816 -0
  7. package/dist/tokens/css/variables-tmo-dark.css +936 -0
  8. package/dist/tokens/css/variables-tmo-light.css +816 -0
  9. package/dist/tokens/doc.json +86736 -0
  10. package/dist/tokens/less/variables-cox-dark.less +933 -0
  11. package/dist/tokens/less/variables-cox-light.less +813 -0
  12. package/dist/tokens/less/variables-dark.less +933 -0
  13. package/dist/tokens/less/variables-light.less +813 -0
  14. package/dist/tokens/less/variables-tmo-dark.less +933 -0
  15. package/dist/tokens/less/variables-tmo-light.less +813 -0
  16. package/dist/tokens/tokens-dark.json +928 -0
  17. package/dist/tokens/tokens-light.json +808 -0
  18. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js +2 -0
  19. package/dist/vue2/chunks/_plugin-vue2_normalizer-ZK80B3OL.js.map +1 -0
  20. package/dist/vue2/chunks/dropdown-zhMEz3bn.js +2 -0
  21. package/dist/vue2/chunks/dropdown-zhMEz3bn.js.map +1 -0
  22. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js +2 -0
  23. package/dist/vue2/chunks/dropdown_constants-KHFvVI2L.js.map +1 -0
  24. package/dist/vue2/chunks/icon_constants-2S_OSQ1t.js +2 -0
  25. package/dist/vue2/chunks/icon_constants-2S_OSQ1t.js.map +1 -0
  26. package/dist/vue2/chunks/index-2jPosQBn.js +3 -0
  27. package/dist/vue2/chunks/index-2jPosQBn.js.map +1 -0
  28. package/dist/vue2/chunks/{index-o4OMWMuv.js → index-YkSDT8-g.js} +2 -2
  29. package/dist/vue2/chunks/{index-o4OMWMuv.js.map → index-YkSDT8-g.js.map} +1 -1
  30. package/dist/vue2/chunks/index-sdfB7Aok.js +2 -0
  31. package/dist/vue2/chunks/index-sdfB7Aok.js.map +1 -0
  32. package/dist/vue2/chunks/input-o-fc1X4b.js +2 -0
  33. package/dist/vue2/chunks/input-o-fc1X4b.js.map +1 -0
  34. package/dist/vue2/chunks/input_group-j2gTtc1C.js +2 -0
  35. package/dist/vue2/chunks/input_group-j2gTtc1C.js.map +1 -0
  36. package/dist/vue2/chunks/keyboard_list_navigation-N74Bpdq7.js +2 -0
  37. package/dist/vue2/chunks/keyboard_list_navigation-N74Bpdq7.js.map +1 -0
  38. package/dist/vue2/chunks/link_constants-Kn6kP4i1.js +2 -0
  39. package/dist/vue2/chunks/link_constants-Kn6kP4i1.js.map +1 -0
  40. package/dist/vue2/chunks/list_item_constants-Tsz5CO1m.js +2 -0
  41. package/dist/vue2/chunks/list_item_constants-Tsz5CO1m.js.map +1 -0
  42. package/dist/vue2/chunks/modal-qEzlo0Sj.js +2 -0
  43. package/dist/vue2/chunks/modal-qEzlo0Sj.js.map +1 -0
  44. package/dist/vue2/chunks/notice_action-u3ZKIhit.js +2 -0
  45. package/dist/vue2/chunks/notice_action-u3ZKIhit.js.map +1 -0
  46. package/dist/vue2/chunks/notice_constants-mC6al2Dm.js +2 -0
  47. package/dist/vue2/chunks/notice_constants-mC6al2Dm.js.map +1 -0
  48. package/dist/vue2/chunks/popover_constants-hOEhklvr.js +2 -0
  49. package/dist/vue2/chunks/popover_constants-hOEhklvr.js.map +1 -0
  50. package/dist/vue2/chunks/sr_only_close_button-ErijKGYR.js +3 -0
  51. package/dist/vue2/chunks/sr_only_close_button-ErijKGYR.js.map +1 -0
  52. package/dist/vue2/chunks/stack_constants-m9Ickqw0.js +2 -0
  53. package/dist/vue2/chunks/stack_constants-m9Ickqw0.js.map +1 -0
  54. package/dist/vue2/chunks/tab-7hJQSLFx.js +2 -0
  55. package/dist/vue2/chunks/tab-7hJQSLFx.js.map +1 -0
  56. package/dist/vue2/component-documentation.json +1 -1
  57. package/dist/vue2/dialtone-vue.cjs +2 -0
  58. package/dist/vue2/dialtone-vue.cjs.map +1 -0
  59. package/dist/vue2/dialtone-vue.js +1 -1
  60. package/dist/vue2/lib/attachment-carousel.cjs +2 -0
  61. package/dist/vue2/lib/attachment-carousel.cjs.map +1 -0
  62. package/dist/vue2/lib/attachment-carousel.js +2 -3
  63. package/dist/vue2/lib/attachment-carousel.js.map +1 -1
  64. package/dist/vue2/lib/avatar.cjs +2 -0
  65. package/dist/vue2/lib/avatar.cjs.map +1 -0
  66. package/dist/vue2/lib/avatar.js +2 -3
  67. package/dist/vue2/lib/avatar.js.map +1 -1
  68. package/dist/vue2/lib/badge.cjs +2 -0
  69. package/dist/vue2/lib/badge.cjs.map +1 -0
  70. package/dist/vue2/lib/badge.js +2 -3
  71. package/dist/vue2/lib/badge.js.map +1 -1
  72. package/dist/vue2/lib/banner.cjs +3 -0
  73. package/dist/vue2/lib/banner.cjs.map +1 -0
  74. package/dist/vue2/lib/banner.js +2 -3
  75. package/dist/vue2/lib/banner.js.map +1 -1
  76. package/dist/vue2/lib/breadcrumbs.cjs +2 -0
  77. package/dist/vue2/lib/breadcrumbs.cjs.map +1 -0
  78. package/dist/vue2/lib/button-group.cjs +2 -0
  79. package/dist/vue2/lib/button-group.cjs.map +1 -0
  80. package/dist/vue2/lib/button.cjs +2 -0
  81. package/dist/vue2/lib/button.cjs.map +1 -0
  82. package/dist/vue2/lib/callbar-button-with-popover.cjs +2 -0
  83. package/dist/vue2/lib/callbar-button-with-popover.cjs.map +1 -0
  84. package/dist/vue2/lib/callbar-button-with-popover.js +2 -3
  85. package/dist/vue2/lib/callbar-button-with-popover.js.map +1 -1
  86. package/dist/vue2/lib/callbar-button.cjs +2 -0
  87. package/dist/vue2/lib/callbar-button.cjs.map +1 -0
  88. package/dist/vue2/lib/callbox.cjs +2 -0
  89. package/dist/vue2/lib/callbox.cjs.map +1 -0
  90. package/dist/vue2/lib/callbox.js +2 -3
  91. package/dist/vue2/lib/callbox.js.map +1 -1
  92. package/dist/vue2/lib/card.cjs +2 -0
  93. package/dist/vue2/lib/card.cjs.map +1 -0
  94. package/dist/vue2/lib/checkbox-group.cjs +2 -0
  95. package/dist/vue2/lib/checkbox-group.cjs.map +1 -0
  96. package/dist/vue2/lib/checkbox.cjs +2 -0
  97. package/dist/vue2/lib/checkbox.cjs.map +1 -0
  98. package/dist/vue2/lib/chip.cjs +2 -0
  99. package/dist/vue2/lib/chip.cjs.map +1 -0
  100. package/dist/vue2/lib/chip.js +2 -3
  101. package/dist/vue2/lib/chip.js.map +1 -1
  102. package/dist/vue2/lib/codeblock.cjs +3 -0
  103. package/dist/vue2/lib/codeblock.cjs.map +1 -0
  104. package/dist/vue2/lib/collapsible.cjs +2 -0
  105. package/dist/vue2/lib/collapsible.cjs.map +1 -0
  106. package/dist/vue2/lib/collapsible.js +2 -3
  107. package/dist/vue2/lib/collapsible.js.map +1 -1
  108. package/dist/vue2/lib/combobox-multi-select.cjs +2 -0
  109. package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -0
  110. package/dist/vue2/lib/combobox-with-popover.cjs +2 -0
  111. package/dist/vue2/lib/combobox-with-popover.cjs.map +1 -0
  112. package/dist/vue2/lib/combobox-with-popover.js +1 -1
  113. package/dist/vue2/lib/combobox.cjs +2 -0
  114. package/dist/vue2/lib/combobox.cjs.map +1 -0
  115. package/dist/vue2/lib/constants.cjs +2 -0
  116. package/dist/vue2/lib/constants.cjs.map +1 -0
  117. package/dist/vue2/lib/contact-info.cjs +2 -0
  118. package/dist/vue2/lib/contact-info.cjs.map +1 -0
  119. package/dist/vue2/lib/contact-info.js +2 -3
  120. package/dist/vue2/lib/contact-info.js.map +1 -1
  121. package/dist/vue2/lib/contact-row.cjs +2 -0
  122. package/dist/vue2/lib/contact-row.cjs.map +1 -0
  123. package/dist/vue2/lib/contact-row.js +1 -1
  124. package/dist/vue2/lib/datepicker.cjs +2 -0
  125. package/dist/vue2/lib/datepicker.cjs.map +1 -0
  126. package/dist/vue2/lib/datepicker.js +12 -13
  127. package/dist/vue2/lib/datepicker.js.map +1 -1
  128. package/dist/vue2/lib/dates.cjs +2 -0
  129. package/dist/vue2/lib/dates.cjs.map +1 -0
  130. package/dist/vue2/lib/description-list.cjs +2 -0
  131. package/dist/vue2/lib/description-list.cjs.map +1 -0
  132. package/dist/vue2/lib/dropdown.cjs +2 -0
  133. package/dist/vue2/lib/dropdown.cjs.map +1 -0
  134. package/dist/vue2/lib/dropdown.js +6 -7
  135. package/dist/vue2/lib/dropdown.js.map +1 -1
  136. package/dist/vue2/lib/editor.cjs +2 -0
  137. package/dist/vue2/lib/editor.cjs.map +1 -0
  138. package/dist/vue2/lib/editor.js +1 -1
  139. package/dist/vue2/lib/emoji-picker.cjs +2 -0
  140. package/dist/vue2/lib/emoji-picker.cjs.map +1 -0
  141. package/dist/vue2/lib/emoji-picker.js +2 -3
  142. package/dist/vue2/lib/emoji-picker.js.map +1 -1
  143. package/dist/vue2/lib/emoji-row.cjs +2 -0
  144. package/dist/vue2/lib/emoji-row.cjs.map +1 -0
  145. package/dist/vue2/lib/emoji-row.js +1 -1
  146. package/dist/vue2/lib/emoji-text-wrapper.cjs +2 -0
  147. package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -0
  148. package/dist/vue2/lib/emoji-text-wrapper.js +1 -1
  149. package/dist/vue2/lib/emoji.cjs +2 -0
  150. package/dist/vue2/lib/emoji.cjs.map +1 -0
  151. package/dist/vue2/lib/emoji.js +1 -1
  152. package/dist/vue2/lib/feed-item-row.cjs +2 -0
  153. package/dist/vue2/lib/feed-item-row.cjs.map +1 -0
  154. package/dist/vue2/lib/feed-item-row.js +2 -3
  155. package/dist/vue2/lib/feed-item-row.js.map +1 -1
  156. package/dist/vue2/lib/feed-pill.cjs +2 -0
  157. package/dist/vue2/lib/feed-pill.cjs.map +1 -0
  158. package/dist/vue2/lib/feed-pill.js +2 -3
  159. package/dist/vue2/lib/feed-pill.js.map +1 -1
  160. package/dist/vue2/lib/general-row.cjs +2 -0
  161. package/dist/vue2/lib/general-row.cjs.map +1 -0
  162. package/dist/vue2/lib/general-row.js +1 -1
  163. package/dist/vue2/lib/group-row.cjs +2 -0
  164. package/dist/vue2/lib/group-row.cjs.map +1 -0
  165. package/dist/vue2/lib/group-row.js +2 -2
  166. package/dist/vue2/lib/grouped-chip.cjs +2 -0
  167. package/dist/vue2/lib/grouped-chip.cjs.map +1 -0
  168. package/dist/vue2/lib/grouped-chip.js +6 -7
  169. package/dist/vue2/lib/grouped-chip.js.map +1 -1
  170. package/dist/vue2/lib/hovercard.cjs +2 -0
  171. package/dist/vue2/lib/hovercard.cjs.map +1 -0
  172. package/dist/vue2/lib/hovercard.js +6 -7
  173. package/dist/vue2/lib/hovercard.js.map +1 -1
  174. package/dist/vue2/lib/icon.cjs +2 -0
  175. package/dist/vue2/lib/icon.cjs.map +1 -0
  176. package/dist/vue2/lib/icon.js +14 -38
  177. package/dist/vue2/lib/icon.js.map +1 -1
  178. package/dist/vue2/lib/image-viewer.cjs +2 -0
  179. package/dist/vue2/lib/image-viewer.cjs.map +1 -0
  180. package/dist/vue2/lib/image-viewer.js +11 -12
  181. package/dist/vue2/lib/image-viewer.js.map +1 -1
  182. package/dist/vue2/lib/input-group.cjs +2 -0
  183. package/dist/vue2/lib/input-group.cjs.map +1 -0
  184. package/dist/vue2/lib/input.cjs +2 -0
  185. package/dist/vue2/lib/input.cjs.map +1 -0
  186. package/dist/vue2/lib/item-layout.cjs +2 -0
  187. package/dist/vue2/lib/item-layout.cjs.map +1 -0
  188. package/dist/vue2/lib/ivr-node.cjs +2 -0
  189. package/dist/vue2/lib/ivr-node.cjs.map +1 -0
  190. package/dist/vue2/lib/ivr-node.js +4 -5
  191. package/dist/vue2/lib/ivr-node.js.map +1 -1
  192. package/dist/vue2/lib/keyboard-shortcut.cjs +2 -0
  193. package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -0
  194. package/dist/vue2/lib/keyboard-shortcut.js +4 -5
  195. package/dist/vue2/lib/keyboard-shortcut.js.map +1 -1
  196. package/dist/vue2/lib/lazy-show.cjs +2 -0
  197. package/dist/vue2/lib/lazy-show.cjs.map +1 -0
  198. package/dist/vue2/lib/link.cjs +2 -0
  199. package/dist/vue2/lib/link.cjs.map +1 -0
  200. package/dist/vue2/lib/list-item-group.cjs +2 -0
  201. package/dist/vue2/lib/list-item-group.cjs.map +1 -0
  202. package/dist/vue2/lib/list-item.cjs +2 -0
  203. package/dist/vue2/lib/list-item.cjs.map +1 -0
  204. package/dist/vue2/lib/list-item.js +2 -3
  205. package/dist/vue2/lib/list-item.js.map +1 -1
  206. package/dist/vue2/lib/message-input.cjs +2 -0
  207. package/dist/vue2/lib/message-input.cjs.map +1 -0
  208. package/dist/vue2/lib/message-input.js +90 -48
  209. package/dist/vue2/lib/message-input.js.map +1 -1
  210. package/dist/vue2/lib/mixins.cjs +2 -0
  211. package/dist/vue2/lib/mixins.cjs.map +1 -0
  212. package/dist/vue2/lib/modal.cjs +3 -0
  213. package/dist/vue2/lib/modal.cjs.map +1 -0
  214. package/dist/vue2/lib/modal.js +10 -11
  215. package/dist/vue2/lib/modal.js.map +1 -1
  216. package/dist/vue2/lib/notice.cjs +2 -0
  217. package/dist/vue2/lib/notice.cjs.map +1 -0
  218. package/dist/vue2/lib/notice.js +2 -3
  219. package/dist/vue2/lib/notice.js.map +1 -1
  220. package/dist/vue2/lib/pagination.cjs +2 -0
  221. package/dist/vue2/lib/pagination.cjs.map +1 -0
  222. package/dist/vue2/lib/pagination.js +2 -3
  223. package/dist/vue2/lib/pagination.js.map +1 -1
  224. package/dist/vue2/lib/popover.cjs +2 -0
  225. package/dist/vue2/lib/popover.cjs.map +1 -0
  226. package/dist/vue2/lib/popover.js +4 -5
  227. package/dist/vue2/lib/popover.js.map +1 -1
  228. package/dist/vue2/lib/presence.cjs +2 -0
  229. package/dist/vue2/lib/presence.cjs.map +1 -0
  230. package/dist/vue2/lib/radio-group.cjs +2 -0
  231. package/dist/vue2/lib/radio-group.cjs.map +1 -0
  232. package/dist/vue2/lib/radio.cjs +2 -0
  233. package/dist/vue2/lib/radio.cjs.map +1 -0
  234. package/dist/vue2/lib/rich-text-editor.cjs +2 -0
  235. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -0
  236. package/dist/vue2/lib/rich-text-editor.js +107 -75
  237. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  238. package/dist/vue2/lib/root-layout.cjs +2 -0
  239. package/dist/vue2/lib/root-layout.cjs.map +1 -0
  240. package/dist/vue2/lib/select-menu.cjs +2 -0
  241. package/dist/vue2/lib/select-menu.cjs.map +1 -0
  242. package/dist/vue2/lib/settings-menu-button.cjs +2 -0
  243. package/dist/vue2/lib/settings-menu-button.cjs.map +1 -0
  244. package/dist/vue2/lib/settings-menu-button.js +2 -3
  245. package/dist/vue2/lib/settings-menu-button.js.map +1 -1
  246. package/dist/vue2/lib/skeleton.cjs +2 -0
  247. package/dist/vue2/lib/skeleton.cjs.map +1 -0
  248. package/dist/vue2/lib/stack.cjs +2 -0
  249. package/dist/vue2/lib/stack.cjs.map +1 -0
  250. package/dist/vue2/lib/tabs.cjs +2 -0
  251. package/dist/vue2/lib/tabs.cjs.map +1 -0
  252. package/dist/vue2/lib/time-pill.cjs +2 -0
  253. package/dist/vue2/lib/time-pill.cjs.map +1 -0
  254. package/dist/vue2/lib/toast.cjs +2 -0
  255. package/dist/vue2/lib/toast.cjs.map +1 -0
  256. package/dist/vue2/lib/toast.js +2 -3
  257. package/dist/vue2/lib/toast.js.map +1 -1
  258. package/dist/vue2/lib/toggle.cjs +2 -0
  259. package/dist/vue2/lib/toggle.cjs.map +1 -0
  260. package/dist/vue2/lib/tooltip-directive.cjs +2 -0
  261. package/dist/vue2/lib/tooltip-directive.cjs.map +1 -0
  262. package/dist/vue2/lib/tooltip.cjs +2 -0
  263. package/dist/vue2/lib/tooltip.cjs.map +1 -0
  264. package/dist/vue2/lib/top-banner-info.cjs +2 -0
  265. package/dist/vue2/lib/top-banner-info.cjs.map +1 -0
  266. package/dist/vue2/lib/unread-pill.cjs +2 -0
  267. package/dist/vue2/lib/unread-pill.cjs.map +1 -0
  268. package/dist/vue2/lib/unread-pill.js +3 -4
  269. package/dist/vue2/lib/unread-pill.js.map +1 -1
  270. package/dist/vue2/lib/utils.cjs +2 -0
  271. package/dist/vue2/lib/utils.cjs.map +1 -0
  272. package/dist/vue2/lib/validation-messages.cjs +2 -0
  273. package/dist/vue2/lib/validation-messages.cjs.map +1 -0
  274. package/dist/vue2/lib/validators.cjs +2 -0
  275. package/dist/vue2/lib/validators.cjs.map +1 -0
  276. package/dist/vue2/style.css +1 -1
  277. package/dist/vue2/types/common/emoji/index.d.ts +3302 -1014
  278. package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
  279. package/dist/vue2/types/components/avatar/avatar.vue.d.ts +1 -1
  280. package/dist/vue2/types/components/button/button.vue.d.ts +2 -2
  281. package/dist/vue2/types/components/card/card.vue.d.ts +1 -1
  282. package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
  283. package/dist/vue2/types/components/collapsible/collapsible.vue.d.ts +2 -2
  284. package/dist/vue2/types/components/combobox/combobox.vue.d.ts +1 -1
  285. package/dist/vue2/types/components/dropdown/dropdown.vue.d.ts +1 -1
  286. package/dist/vue2/types/components/emoji/emoji.vue.d.ts +1 -1
  287. package/dist/vue2/types/components/icon/icon.vue.d.ts +2 -22
  288. package/dist/vue2/types/components/icon/icon.vue.d.ts.map +1 -1
  289. package/dist/vue2/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  290. package/dist/vue2/types/components/modal/modal.vue.d.ts +2 -2
  291. package/dist/vue2/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  292. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +91 -1
  293. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  294. package/dist/vue2/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  295. package/dist/vue2/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  296. package/dist/vue2/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  297. package/dist/vue2/types/components/skeleton/skeleton-text.vue.d.ts +2 -2
  298. package/dist/vue2/types/components/skeleton/skeleton.vue.d.ts +1 -1
  299. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +2 -2
  300. package/dist/vue2/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  301. package/dist/vue2/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  302. package/dist/vue2/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  303. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +90 -0
  304. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  305. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  306. package/dist/vue2/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  307. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js +2 -0
  308. package/dist/vue3/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +1 -0
  309. package/dist/vue3/chunks/dropdown-UO3UJalk.js +2 -0
  310. package/dist/vue3/chunks/dropdown-UO3UJalk.js.map +1 -0
  311. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js +2 -0
  312. package/dist/vue3/chunks/dropdown_constants-KHFvVI2L.js.map +1 -0
  313. package/dist/vue3/chunks/icon_constants-2S_OSQ1t.js +2 -0
  314. package/dist/vue3/chunks/icon_constants-2S_OSQ1t.js.map +1 -0
  315. package/dist/vue3/chunks/index-6tYeqbgP.js +3 -0
  316. package/dist/vue3/chunks/index-6tYeqbgP.js.map +1 -0
  317. package/dist/vue3/chunks/index-IBtQ5jRJ.js +2 -0
  318. package/dist/vue3/chunks/index-IBtQ5jRJ.js.map +1 -0
  319. package/dist/vue3/chunks/{index-BK8b99k1.js → index-mRmwpCBG.js} +2 -2
  320. package/dist/vue3/chunks/{index-BK8b99k1.js.map → index-mRmwpCBG.js.map} +1 -1
  321. package/dist/vue3/chunks/input-0Uksk4DP.js +2 -0
  322. package/dist/vue3/chunks/input-0Uksk4DP.js.map +1 -0
  323. package/dist/vue3/chunks/input_group-AS760Cp7.js +2 -0
  324. package/dist/vue3/chunks/input_group-AS760Cp7.js.map +1 -0
  325. package/dist/vue3/chunks/keyboard_list_navigation-N74Bpdq7.js +2 -0
  326. package/dist/vue3/chunks/keyboard_list_navigation-N74Bpdq7.js.map +1 -0
  327. package/dist/vue3/chunks/link_constants-Kn6kP4i1.js +2 -0
  328. package/dist/vue3/chunks/link_constants-Kn6kP4i1.js.map +1 -0
  329. package/dist/vue3/chunks/list_item_constants-Tsz5CO1m.js +2 -0
  330. package/dist/vue3/chunks/list_item_constants-Tsz5CO1m.js.map +1 -0
  331. package/dist/vue3/chunks/modal-qEzlo0Sj.js +2 -0
  332. package/dist/vue3/chunks/modal-qEzlo0Sj.js.map +1 -0
  333. package/dist/vue3/chunks/notice_action-jO199emq.js +2 -0
  334. package/dist/vue3/chunks/notice_action-jO199emq.js.map +1 -0
  335. package/dist/vue3/chunks/notice_constants-mC6al2Dm.js +2 -0
  336. package/dist/vue3/chunks/notice_constants-mC6al2Dm.js.map +1 -0
  337. package/dist/vue3/chunks/popover_constants-hOEhklvr.js +2 -0
  338. package/dist/vue3/chunks/popover_constants-hOEhklvr.js.map +1 -0
  339. package/dist/vue3/chunks/sr_only_close_button-iD7s1Pbj.js +3 -0
  340. package/dist/vue3/chunks/sr_only_close_button-iD7s1Pbj.js.map +1 -0
  341. package/dist/vue3/chunks/stack_constants-m9Ickqw0.js +2 -0
  342. package/dist/vue3/chunks/stack_constants-m9Ickqw0.js.map +1 -0
  343. package/dist/vue3/chunks/tab-at7WWglk.js +2 -0
  344. package/dist/vue3/chunks/tab-at7WWglk.js.map +1 -0
  345. package/dist/vue3/component-documentation.json +1 -1
  346. package/dist/vue3/dialtone-vue.cjs +2 -0
  347. package/dist/vue3/dialtone-vue.cjs.map +1 -0
  348. package/dist/vue3/dialtone-vue.js +1 -1
  349. package/dist/vue3/lib/attachment-carousel.cjs +2 -0
  350. package/dist/vue3/lib/attachment-carousel.cjs.map +1 -0
  351. package/dist/vue3/lib/attachment-carousel.js +2 -3
  352. package/dist/vue3/lib/attachment-carousel.js.map +1 -1
  353. package/dist/vue3/lib/avatar.cjs +2 -0
  354. package/dist/vue3/lib/avatar.cjs.map +1 -0
  355. package/dist/vue3/lib/avatar.js +2 -3
  356. package/dist/vue3/lib/avatar.js.map +1 -1
  357. package/dist/vue3/lib/badge.cjs +2 -0
  358. package/dist/vue3/lib/badge.cjs.map +1 -0
  359. package/dist/vue3/lib/badge.js +2 -3
  360. package/dist/vue3/lib/badge.js.map +1 -1
  361. package/dist/vue3/lib/banner.cjs +3 -0
  362. package/dist/vue3/lib/banner.cjs.map +1 -0
  363. package/dist/vue3/lib/banner.js +6 -7
  364. package/dist/vue3/lib/banner.js.map +1 -1
  365. package/dist/vue3/lib/breadcrumbs.cjs +2 -0
  366. package/dist/vue3/lib/breadcrumbs.cjs.map +1 -0
  367. package/dist/vue3/lib/button-group.cjs +2 -0
  368. package/dist/vue3/lib/button-group.cjs.map +1 -0
  369. package/dist/vue3/lib/button.cjs +2 -0
  370. package/dist/vue3/lib/button.cjs.map +1 -0
  371. package/dist/vue3/lib/callbar-button-with-popover.cjs +2 -0
  372. package/dist/vue3/lib/callbar-button-with-popover.cjs.map +1 -0
  373. package/dist/vue3/lib/callbar-button-with-popover.js +9 -10
  374. package/dist/vue3/lib/callbar-button-with-popover.js.map +1 -1
  375. package/dist/vue3/lib/callbar-button.cjs +2 -0
  376. package/dist/vue3/lib/callbar-button.cjs.map +1 -0
  377. package/dist/vue3/lib/callbox.cjs +2 -0
  378. package/dist/vue3/lib/callbox.cjs.map +1 -0
  379. package/dist/vue3/lib/callbox.js +2 -3
  380. package/dist/vue3/lib/callbox.js.map +1 -1
  381. package/dist/vue3/lib/card.cjs +2 -0
  382. package/dist/vue3/lib/card.cjs.map +1 -0
  383. package/dist/vue3/lib/checkbox-group.cjs +2 -0
  384. package/dist/vue3/lib/checkbox-group.cjs.map +1 -0
  385. package/dist/vue3/lib/checkbox.cjs +2 -0
  386. package/dist/vue3/lib/checkbox.cjs.map +1 -0
  387. package/dist/vue3/lib/chip.cjs +2 -0
  388. package/dist/vue3/lib/chip.cjs.map +1 -0
  389. package/dist/vue3/lib/chip.js +10 -11
  390. package/dist/vue3/lib/chip.js.map +1 -1
  391. package/dist/vue3/lib/codeblock.cjs +3 -0
  392. package/dist/vue3/lib/codeblock.cjs.map +1 -0
  393. package/dist/vue3/lib/collapsible.cjs +2 -0
  394. package/dist/vue3/lib/collapsible.cjs.map +1 -0
  395. package/dist/vue3/lib/collapsible.js +7 -8
  396. package/dist/vue3/lib/collapsible.js.map +1 -1
  397. package/dist/vue3/lib/combobox-multi-select.cjs +2 -0
  398. package/dist/vue3/lib/combobox-multi-select.cjs.map +1 -0
  399. package/dist/vue3/lib/combobox-with-popover.cjs +2 -0
  400. package/dist/vue3/lib/combobox-with-popover.cjs.map +1 -0
  401. package/dist/vue3/lib/combobox.cjs +2 -0
  402. package/dist/vue3/lib/combobox.cjs.map +1 -0
  403. package/dist/vue3/lib/constants.cjs +2 -0
  404. package/dist/vue3/lib/constants.cjs.map +1 -0
  405. package/dist/vue3/lib/contact-info.cjs +2 -0
  406. package/dist/vue3/lib/contact-info.cjs.map +1 -0
  407. package/dist/vue3/lib/contact-info.js +2 -3
  408. package/dist/vue3/lib/contact-info.js.map +1 -1
  409. package/dist/vue3/lib/contact-row.cjs +2 -0
  410. package/dist/vue3/lib/contact-row.cjs.map +1 -0
  411. package/dist/vue3/lib/contact-row.js +1 -1
  412. package/dist/vue3/lib/datepicker.cjs +2 -0
  413. package/dist/vue3/lib/datepicker.cjs.map +1 -0
  414. package/dist/vue3/lib/datepicker.js +12 -13
  415. package/dist/vue3/lib/datepicker.js.map +1 -1
  416. package/dist/vue3/lib/dates.cjs +2 -0
  417. package/dist/vue3/lib/dates.cjs.map +1 -0
  418. package/dist/vue3/lib/description-list.cjs +2 -0
  419. package/dist/vue3/lib/description-list.cjs.map +1 -0
  420. package/dist/vue3/lib/dropdown.cjs +2 -0
  421. package/dist/vue3/lib/dropdown.cjs.map +1 -0
  422. package/dist/vue3/lib/dropdown.js +6 -7
  423. package/dist/vue3/lib/dropdown.js.map +1 -1
  424. package/dist/vue3/lib/editor.cjs +2 -0
  425. package/dist/vue3/lib/editor.cjs.map +1 -0
  426. package/dist/vue3/lib/editor.js +1 -1
  427. package/dist/vue3/lib/emoji-picker.cjs +2 -0
  428. package/dist/vue3/lib/emoji-picker.cjs.map +1 -0
  429. package/dist/vue3/lib/emoji-picker.js +2 -3
  430. package/dist/vue3/lib/emoji-picker.js.map +1 -1
  431. package/dist/vue3/lib/emoji-row.cjs +2 -0
  432. package/dist/vue3/lib/emoji-row.cjs.map +1 -0
  433. package/dist/vue3/lib/emoji-row.js +1 -1
  434. package/dist/vue3/lib/emoji-text-wrapper.cjs +2 -0
  435. package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -0
  436. package/dist/vue3/lib/emoji-text-wrapper.js +1 -1
  437. package/dist/vue3/lib/emoji.cjs +2 -0
  438. package/dist/vue3/lib/emoji.cjs.map +1 -0
  439. package/dist/vue3/lib/emoji.js +1 -1
  440. package/dist/vue3/lib/feed-item-row.cjs +2 -0
  441. package/dist/vue3/lib/feed-item-row.cjs.map +1 -0
  442. package/dist/vue3/lib/feed-item-row.js +11 -12
  443. package/dist/vue3/lib/feed-item-row.js.map +1 -1
  444. package/dist/vue3/lib/feed-pill.cjs +2 -0
  445. package/dist/vue3/lib/feed-pill.cjs.map +1 -0
  446. package/dist/vue3/lib/feed-pill.js +2 -3
  447. package/dist/vue3/lib/feed-pill.js.map +1 -1
  448. package/dist/vue3/lib/general-row.cjs +2 -0
  449. package/dist/vue3/lib/general-row.cjs.map +1 -0
  450. package/dist/vue3/lib/general-row.js +1 -1
  451. package/dist/vue3/lib/group-row.cjs +2 -0
  452. package/dist/vue3/lib/group-row.cjs.map +1 -0
  453. package/dist/vue3/lib/group-row.js +2 -2
  454. package/dist/vue3/lib/grouped-chip.cjs +2 -0
  455. package/dist/vue3/lib/grouped-chip.cjs.map +1 -0
  456. package/dist/vue3/lib/grouped-chip.js +5 -6
  457. package/dist/vue3/lib/grouped-chip.js.map +1 -1
  458. package/dist/vue3/lib/hovercard.cjs +2 -0
  459. package/dist/vue3/lib/hovercard.cjs.map +1 -0
  460. package/dist/vue3/lib/hovercard.js +7 -8
  461. package/dist/vue3/lib/hovercard.js.map +1 -1
  462. package/dist/vue3/lib/icon.cjs +2 -0
  463. package/dist/vue3/lib/icon.cjs.map +1 -0
  464. package/dist/vue3/lib/icon.js +20 -51
  465. package/dist/vue3/lib/icon.js.map +1 -1
  466. package/dist/vue3/lib/image-viewer.cjs +2 -0
  467. package/dist/vue3/lib/image-viewer.cjs.map +1 -0
  468. package/dist/vue3/lib/image-viewer.js +9 -10
  469. package/dist/vue3/lib/image-viewer.js.map +1 -1
  470. package/dist/vue3/lib/input-group.cjs +2 -0
  471. package/dist/vue3/lib/input-group.cjs.map +1 -0
  472. package/dist/vue3/lib/input.cjs +2 -0
  473. package/dist/vue3/lib/input.cjs.map +1 -0
  474. package/dist/vue3/lib/item-layout.cjs +2 -0
  475. package/dist/vue3/lib/item-layout.cjs.map +1 -0
  476. package/dist/vue3/lib/ivr-node.cjs +2 -0
  477. package/dist/vue3/lib/ivr-node.cjs.map +1 -0
  478. package/dist/vue3/lib/ivr-node.js +4 -5
  479. package/dist/vue3/lib/ivr-node.js.map +1 -1
  480. package/dist/vue3/lib/keyboard-shortcut.cjs +2 -0
  481. package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -0
  482. package/dist/vue3/lib/keyboard-shortcut.js +4 -5
  483. package/dist/vue3/lib/keyboard-shortcut.js.map +1 -1
  484. package/dist/vue3/lib/lazy-show.cjs +2 -0
  485. package/dist/vue3/lib/lazy-show.cjs.map +1 -0
  486. package/dist/vue3/lib/link.cjs +2 -0
  487. package/dist/vue3/lib/link.cjs.map +1 -0
  488. package/dist/vue3/lib/list-item-group.cjs +2 -0
  489. package/dist/vue3/lib/list-item-group.cjs.map +1 -0
  490. package/dist/vue3/lib/list-item.cjs +2 -0
  491. package/dist/vue3/lib/list-item.cjs.map +1 -0
  492. package/dist/vue3/lib/list-item.js +2 -3
  493. package/dist/vue3/lib/list-item.js.map +1 -1
  494. package/dist/vue3/lib/message-input.cjs +2 -0
  495. package/dist/vue3/lib/message-input.cjs.map +1 -0
  496. package/dist/vue3/lib/message-input.js +149 -101
  497. package/dist/vue3/lib/message-input.js.map +1 -1
  498. package/dist/vue3/lib/mixins.cjs +2 -0
  499. package/dist/vue3/lib/mixins.cjs.map +1 -0
  500. package/dist/vue3/lib/modal.cjs +3 -0
  501. package/dist/vue3/lib/modal.cjs.map +1 -0
  502. package/dist/vue3/lib/modal.js +11 -12
  503. package/dist/vue3/lib/modal.js.map +1 -1
  504. package/dist/vue3/lib/notice.cjs +2 -0
  505. package/dist/vue3/lib/notice.cjs.map +1 -0
  506. package/dist/vue3/lib/notice.js +2 -3
  507. package/dist/vue3/lib/notice.js.map +1 -1
  508. package/dist/vue3/lib/pagination.cjs +2 -0
  509. package/dist/vue3/lib/pagination.cjs.map +1 -0
  510. package/dist/vue3/lib/pagination.js +2 -3
  511. package/dist/vue3/lib/pagination.js.map +1 -1
  512. package/dist/vue3/lib/popover.cjs +2 -0
  513. package/dist/vue3/lib/popover.cjs.map +1 -0
  514. package/dist/vue3/lib/popover.js +4 -5
  515. package/dist/vue3/lib/popover.js.map +1 -1
  516. package/dist/vue3/lib/presence.cjs +2 -0
  517. package/dist/vue3/lib/presence.cjs.map +1 -0
  518. package/dist/vue3/lib/radio-group.cjs +2 -0
  519. package/dist/vue3/lib/radio-group.cjs.map +1 -0
  520. package/dist/vue3/lib/radio.cjs +2 -0
  521. package/dist/vue3/lib/radio.cjs.map +1 -0
  522. package/dist/vue3/lib/rich-text-editor.cjs +2 -0
  523. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -0
  524. package/dist/vue3/lib/rich-text-editor.js +174 -142
  525. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  526. package/dist/vue3/lib/root-layout.cjs +2 -0
  527. package/dist/vue3/lib/root-layout.cjs.map +1 -0
  528. package/dist/vue3/lib/scroller.cjs +2 -0
  529. package/dist/vue3/lib/scroller.cjs.map +1 -0
  530. package/dist/vue3/lib/select-menu.cjs +2 -0
  531. package/dist/vue3/lib/select-menu.cjs.map +1 -0
  532. package/dist/vue3/lib/settings-menu-button.cjs +2 -0
  533. package/dist/vue3/lib/settings-menu-button.cjs.map +1 -0
  534. package/dist/vue3/lib/settings-menu-button.js +2 -3
  535. package/dist/vue3/lib/settings-menu-button.js.map +1 -1
  536. package/dist/vue3/lib/skeleton.cjs +2 -0
  537. package/dist/vue3/lib/skeleton.cjs.map +1 -0
  538. package/dist/vue3/lib/stack.cjs +2 -0
  539. package/dist/vue3/lib/stack.cjs.map +1 -0
  540. package/dist/vue3/lib/tabs.cjs +2 -0
  541. package/dist/vue3/lib/tabs.cjs.map +1 -0
  542. package/dist/vue3/lib/time-pill.cjs +2 -0
  543. package/dist/vue3/lib/time-pill.cjs.map +1 -0
  544. package/dist/vue3/lib/toast.cjs +2 -0
  545. package/dist/vue3/lib/toast.cjs.map +1 -0
  546. package/dist/vue3/lib/toast.js +2 -3
  547. package/dist/vue3/lib/toast.js.map +1 -1
  548. package/dist/vue3/lib/toggle.cjs +2 -0
  549. package/dist/vue3/lib/toggle.cjs.map +1 -0
  550. package/dist/vue3/lib/tooltip-directive.cjs +2 -0
  551. package/dist/vue3/lib/tooltip-directive.cjs.map +1 -0
  552. package/dist/vue3/lib/tooltip.cjs +2 -0
  553. package/dist/vue3/lib/tooltip.cjs.map +1 -0
  554. package/dist/vue3/lib/top-banner-info.cjs +2 -0
  555. package/dist/vue3/lib/top-banner-info.cjs.map +1 -0
  556. package/dist/vue3/lib/unread-pill.cjs +2 -0
  557. package/dist/vue3/lib/unread-pill.cjs.map +1 -0
  558. package/dist/vue3/lib/unread-pill.js +2 -3
  559. package/dist/vue3/lib/unread-pill.js.map +1 -1
  560. package/dist/vue3/lib/utils.cjs +2 -0
  561. package/dist/vue3/lib/utils.cjs.map +1 -0
  562. package/dist/vue3/lib/validation-messages.cjs +2 -0
  563. package/dist/vue3/lib/validation-messages.cjs.map +1 -0
  564. package/dist/vue3/lib/validators.cjs +2 -0
  565. package/dist/vue3/lib/validators.cjs.map +1 -0
  566. package/dist/vue3/style.css +1 -1
  567. package/dist/vue3/types/common/emoji/index.d.ts +1 -1
  568. package/dist/vue3/types/components/avatar/avatar.vue.d.ts +1 -1
  569. package/dist/vue3/types/components/button/button.vue.d.ts +2 -2
  570. package/dist/vue3/types/components/card/card.vue.d.ts +1 -1
  571. package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
  572. package/dist/vue3/types/components/collapsible/collapsible.vue.d.ts +2 -2
  573. package/dist/vue3/types/components/combobox/combobox.vue.d.ts +1 -1
  574. package/dist/vue3/types/components/dropdown/dropdown.vue.d.ts +1 -1
  575. package/dist/vue3/types/components/emoji/emoji.vue.d.ts +1 -1
  576. package/dist/vue3/types/components/icon/icon.vue.d.ts +1 -19
  577. package/dist/vue3/types/components/icon/icon.vue.d.ts.map +1 -1
  578. package/dist/vue3/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  579. package/dist/vue3/types/components/modal/modal.vue.d.ts +2 -2
  580. package/dist/vue3/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  581. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +91 -1
  582. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  583. package/dist/vue3/types/components/root_layout/root_layout.vue.d.ts +1 -1
  584. package/dist/vue3/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  585. package/dist/vue3/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  586. package/dist/vue3/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  587. package/dist/vue3/types/components/skeleton/skeleton-text.vue.d.ts +2 -2
  588. package/dist/vue3/types/components/skeleton/skeleton.vue.d.ts +1 -1
  589. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +2 -2
  590. package/dist/vue3/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  591. package/dist/vue3/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  592. package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  593. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +90 -0
  594. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  595. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  596. package/dist/vue3/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  597. package/package.json +24 -16
  598. package/dist/eslint-plugin/index.js +0 -22
  599. package/dist/eslint-plugin/rules/custom-implementation.js +0 -69
  600. package/dist/eslint-plugin/rules/deprecated-component.js +0 -91
  601. package/dist/eslint-plugin/rules/deprecated-directive.js +0 -55
  602. package/dist/eslint-plugin/rules/deprecated-icons.js +0 -114
  603. package/dist/stylelint-plugin/index.js +0 -5
  604. package/dist/stylelint-plugin/rules/no-mixins.js +0 -47
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-with-popover.cjs","sources":["../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-bind=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n v-model:open=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[DROPDOWN_PADDING_CLASSES[padding], listClass]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","SrOnlyCloseButtonMixin","t","LABEL_SIZES","getUniqueString","padding","DROPDOWN_PADDING_CLASSES","item","contentWidth","POPOVER_CONTENT_WIDTHS","appendTo","POPOVER_APPEND_TO_VALUES","hasSlotContent","show","val","value","highlightIndex","opened","_a","popoverEl","_b","comboboxEl","_c","el","_hoisted_2","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","args","_cache","_withKeys","$event","_renderSlot","_ctx","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","_normalizeClass","_component_combobox_loading_list","_component_combobox_empty_list"],"mappings":"07BAyHA,MAAKA,EAAU,CACb,KAAM,8BAEN,WAAY,YACVC,EAAU,EACV,UAAAC,EAAS,UACT,oBAAAC,EAAmB,EACnB,kBAAAC,EAAiB,CAClB,EAED,OAAQ,CAACC,EAAAA,CAAsB,EAE/B,MAAO,CAIL,MAAO,CACL,KAAM,OACN,SAAU,EACX,EAMD,aAAc,CACZ,KAAM,QACN,QAAS,EACV,EAMD,KAAM,CACJ,KAAM,OACN,QAAS,KACT,UAAYC,GAAM,OAAO,OAAOC,GAAW,EAAE,SAASD,CAAC,CACxD,EAKD,YAAa,CACX,KAAM,OACN,QAAS,EACV,EAQD,SAAU,CACR,KAAM,QACN,QAAS,IACV,EAMD,OAAQ,CACN,KAAM,OACN,SAAW,CAAE,OAAOE,EAAe,gBAAA,CAAK,CACzC,EAKD,UAAW,CACT,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,EACV,EAKD,kBAAmB,CACjB,KAAM,SACN,QAAS,IACV,EAKD,YAAa,CACX,KAAM,SACN,QAAS,IACV,EAMD,UAAW,CACT,KAAM,OACN,QAAS,EACV,EAMD,SAAU,CACR,KAAM,OACN,QAAS,EACV,EAKD,QAAS,CACP,KAAM,OACN,QAAS,QACT,UAAYC,GACH,OAAO,KAAKC,GAAwB,EAAE,KAAMC,GAASA,IAASF,CAAO,CAE/E,EAMD,aAAc,CACZ,KAAM,OACN,QAAS,KACT,UAAWG,GAAgBC,IAAuB,SAASD,CAAY,CACxE,EAMD,kBAAmB,CACjB,KAAM,QACN,QAAS,EACV,EAMD,cAAe,CACb,KAAM,MACN,QAAS,IAAM,CAAC,EAAG,CAAC,CACrB,EAKD,cAAe,CACb,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,EACV,EAMD,kBAAmB,CACjB,KAAM,QACN,QAAS,EACV,EAKD,QAAS,CACP,KAAM,QACN,QAAS,EACV,EAKD,UAAW,CACT,KAAM,QACN,QAAS,EACV,EAKD,kBAAmB,CACjB,KAAM,OACN,QAAS,EACV,EAOD,SAAU,CACR,KAAM,CAAC,YAAa,MAAM,EAC1B,QAAS,OACT,UAAWE,GACFC,EAAwB,EAAC,SAASD,CAAQ,GAC5CA,aAAoB,WAE5B,EAMD,WAAY,CACV,KAAM,OACN,QAAS,MACV,CACF,EAED,MAAO,CAOL,SAOA,SAQA,YAQA,QACD,EAED,MAAQ,CACN,MAAO,0BACLJ,EAAwB,EACxB,YAAa,GACb,eAAgB,GAChB,cAAe,GACf,eAAgBF,EAAAA,gBAAiB,EACjC,eAAAQ,EAAc,eAEjB,EAED,SAAU,CACR,mBAAqB,CACnB,MAAO,CACL,GAAG,KAAK,OAER,SAAU,KAAK,SAEf,SAAU,KAAK,SAEf,YAAa,KAAK,YAErB,CACF,EAED,MAAO,CACL,SAAU,CACR,QAAS,SAAUC,EAAM,CACnBA,IAAS,OACX,KAAK,YAAcA,EAEtB,EAED,UAAW,EACZ,EAED,YAAaC,EAAK,CACZA,EACF,OAAO,iBAAiB,YAAa,KAAK,UAAU,EAEpD,OAAO,oBAAoB,YAAa,KAAK,UAAU,EAEzD,KAAK,SAASA,CAAG,CAClB,CACF,EAED,QAAS,CACP,kBAAmBC,EAAO,CACpB,CAAC,KAAK,mBAAqBA,GAAS,KAAK,iBAAgB,EACzD,CAAC,KAAK,mBAAqB,CAACA,GAAS,KAAK,kBAAiB,CAChE,EAED,kBAAoB,CACd,KAAK,UAAY,OACrB,KAAK,YAAc,GACpB,EAED,mBAAqB,CACf,KAAK,UAAY,OACrB,KAAK,YAAc,GACpB,EAED,SAAUC,EAAgB,CACpB,KAAK,UAET,KAAK,MAAM,SAAUA,CAAc,EAC9B,KAAK,mBAER,KAAK,kBAAiB,EAEzB,EAED,UAAY,CACV,KAAK,MAAM,QAAQ,EACnB,KAAK,kBAAiB,CACvB,EAED,YAAaA,EAAgB,CACvB,KAAK,SAET,KAAK,MAAM,YAAaA,CAAc,CACvC,EAED,SAAUC,EAAQ,CAChB,KAAK,MAAM,SAAUA,CAAM,CAC5B,EAED,UAAW,EAAG,OACR,KAAK,mBAAqB,KAAKC,EAAA,KAAK,MAAM,QAAX,YAAAA,EAAkB,cAAc,YAAa,EAAE,QAGhF,KAAK,iBAAgB,CAExB,EAED,WAAY,EAAG,WAEb,MAAMC,GAAYC,GAAAF,EAAA,KAAK,MAAM,UAAX,YAAAA,EAAoB,MAApB,YAAAE,EAAyB,OACrCC,EAAa,KAAK,MAAM,OAE1BC,EAAA,EAAE,iBAAF,MAAAA,EAAkB,KAAKC,GAAM,CAACJ,EAAWE,CAAU,EAAE,SAASE,CAAE,IAGpE,KAAK,kBAAiB,CACvB,EAED,qBAAuB,CACjB,KAAK,WAAa,MAAQ,KAAK,aAAe,CAAC,KAAK,mBAExD,KAAK,iBAAgB,CACtB,CACF,CACH,WA9ZYC,EAAA,CAAA,IAAI,QAAQ,kCAoCZC,EAAA,CAAA,IAAI,QAAQ,iMArGtB,OAAAC,YAAA,EAAAC,cA4GcC,EA5GdC,EAAAA,WA4Gc,CA3GZ,IAAI,WACH,QAASC,EAAO,QAChB,MAAOA,EAAK,MACZ,gBAAeA,EAAY,aAC3B,KAAMA,EAAI,KACV,YAAaA,EAAW,YACxB,aAAYA,EAAS,UACrB,sBAAqBA,EAAiB,kBACtC,YAAWC,EAAW,YACtB,uBAAsBD,EAAiB,kBACvC,iBAAgBA,EAAW,YAC3B,wBAAuB,GACvB,UAASA,EAAM,OAChB,UAAQ,eACAE,EAAiB,iBAAA,EAAA,CAGtB,MAAKC,EAAA,QAGN,CAYM,CAfI,WAAAC,KAAU,CAGpBC,EAAAA,mBAYM,MAAA,CAXH,GAAIJ,EAAc,eACnB,IAAI,QACH,8BAASC,EAAS,WAAAA,EAAA,UAAA,GAAAI,CAAA,GAClB,UAAO,CAAKC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAAAA,SAAAC,GAAAP,EAAA,oBAAoBO,CAAM,EAAA,CAAA,IAAA,CAAA,GACxBF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAAAA,SAAAC,GAAAP,EAAA,oBAAoBO,CAAM,EAAA,CAAA,MAAA,CAAA,MAEzCC,aAIEC,EAAA,OAAA,QAAA,CAFC,WAAaP,EACb,QAAUF,EAAiB,6BAIvB,eACT,CAsEa,CAvEI,OAAAf,EAAQ,UAAAyB,EAAW,oBAAAC,CAAmB,IAAA,CACvDC,EAAAA,YAsEaC,EAAA,CArEX,IAAI,UACI,KAAMd,EAAW,2CAAXA,EAAW,YAAAQ,GACxB,gBAAe,GACf,aAAYT,EAAS,UACrB,YAAWA,EAAQ,SACnB,OAAQA,EAAa,cACrB,OAAQA,EAAa,cACtB,UAAU,eACV,wBAAsB,OACtB,QAAQ,OACR,KAAK,UACJ,kBAAiBC,EAAc,eAC/B,gBAAeD,EAAY,aAC3B,iBAAgB,GAChB,mBAAkB,KAClB,MAAO,GACP,aAAY,GACZ,YAAWA,EAAQ,SACnB,WAAYA,EAAU,WACtB,8BAA6BW,EAAwB,yBACrD,wBAAuBA,EAAmB,oBAC1C,SAAQxB,kBAaE,kBAET,IAoBM,CApBNkB,EAAAA,mBAoBM,MAAA,CAnBJ,IAAI,cACH,MAAQW,EAAAA,eAAA,CAAAf,EAAA,yBAAyBD,EAAA,OAAO,EAAGA,EAAS,SAAA,CAAA,EACpD,aAAYa,EACZ,WAAUA,IAGHb,EAAO,SADfJ,EAAAA,UAAA,EAAAC,EAAA,YAGEoB,wCADQL,CAAS,CAAA,EAAA,KAAA,EAAA,GAGNZ,EAAA,WAAaA,EAAiB,mBAD3CJ,EAAA,UAAA,EAAAC,EAAAA,YAIEqB,EAJFnB,EAIE,WAAA,CAAA,IAAA,GAFQa,EACP,CAAA,QAASZ,EAAiB,iBAAA,CAAA,EAAA,KAAA,GAAA,CAAA,SAAA,CAAA,GAE7BU,aAIEC,EAAA,OAAA,OAAA,OADC,UAAYC,mBA9BXX,EAAc,eAACU,EAAM,OAAC,MAAM,QACjC,6BAED,IAIM,CAJNN,EAAA,mBAIM,MAJNX,EAIM,CADJgB,aAAsBC,EAAA,OAAA,QAAA,0BA8BlBV,EAAc,eAACU,EAAM,OAAC,MAAM,QACjC,6BAED,IAIM,CAJNN,EAAA,mBAIM,MAJNV,EAIM,CADJe,aAAsBC,EAAA,OAAA,QAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-6tYeqbgP.js");require("../chunks/keyboard_list_navigation-N74Bpdq7.js");require("./utils.cjs");require("./constants.cjs");require("vue");require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js");require("./list-item.cjs");require("../chunks/list_item_constants-Tsz5CO1m.js");require("./item-layout.cjs");require("./icon.cjs");require("@dialpad/dialtone-icons/vue3");require("../chunks/icon_constants-2S_OSQ1t.js");require("@dialpad/dialtone-icons/icons.json");require("./skeleton.cjs");exports.DtCombobox=e.D;exports.LABEL_SIZES=e.L;
2
+ //# sourceMappingURL=combobox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const E={ERROR:"error",WARNING:"warning",SUCCESS:"success"},e={LARGE:"lg",EXTRA_LARGE:"xl"},I={xs:"",sm:"",md:"",lg:"d-description--lg",xl:"d-description--xl"},o={xs:"d-label--xs",sm:"d-label--sm",md:"",lg:"d-label--lg",xl:"d-label--xl"},t={esc:"Esc",escape:"Escape",tab:"Tab",enter:"Enter",space:"Space",spacebar:"Spacebar",up:"Up",arrowup:"ArrowUp",left:"Left",arrowleft:"ArrowLeft",right:"Right",arrowright:"ArrowRight",down:"Down",arrowdown:"ArrowDown",home:"Home",end:"End"},S=E.ERROR,r="dt",s={VALIDATION_MESSAGE_TYPES:E,DESCRIPTION_SIZE_TYPES:e,DEFAULT_VALIDATION_MESSAGE_TYPE:S,DEFAULT_PREFIX:r};exports.DEFAULT_PREFIX=r;exports.DEFAULT_VALIDATION_MESSAGE_TYPE=S;exports.DESCRIPTION_SIZE_MODIFIERS=I;exports.DESCRIPTION_SIZE_TYPES=e;exports.EVENT_KEYNAMES=t;exports.LABEL_SIZE_MODIFIERS=o;exports.VALIDATION_MESSAGE_TYPES=E;exports.default=s;
2
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.cjs","sources":["../../common/constants/index.js"],"sourcesContent":["/* TODO: Move and sort these in a constants directory\n\nExample:\n constants/\n forms.js\n defaults.js\n ...\n*/\n\n// Types of messages, also dictates what is the current state of the input.\nexport const VALIDATION_MESSAGE_TYPES = {\n ERROR: 'error',\n WARNING: 'warning',\n SUCCESS: 'success',\n};\n\n// Description size variants\nexport const DESCRIPTION_SIZE_TYPES = {\n LARGE: 'lg',\n EXTRA_LARGE: 'xl',\n};\n\n// Description size variants\nexport const DESCRIPTION_SIZE_MODIFIERS = {\n xs: '',\n sm: '',\n md: '',\n lg: 'd-description--lg',\n xl: 'd-description--xl',\n};\n\n// Label size variants\nexport const LABEL_SIZE_MODIFIERS = {\n xs: 'd-label--xs',\n sm: 'd-label--sm',\n md: '',\n lg: 'd-label--lg',\n xl: 'd-label--xl',\n};\n\nexport const EVENT_KEYNAMES = {\n esc: 'Esc',\n escape: 'Escape',\n tab: 'Tab',\n enter: 'Enter',\n space: 'Space',\n spacebar: 'Spacebar',\n up: 'Up',\n arrowup: 'ArrowUp',\n left: 'Left',\n arrowleft: 'ArrowLeft',\n right: 'Right',\n arrowright: 'ArrowRight',\n down: 'Down',\n arrowdown: 'ArrowDown',\n home: 'Home',\n end: 'End',\n};\n\n/*\n * Any string message or message object in the messages prop that do not specify\n * a 'type' attributes will default to 'DEFAULT_MESSAGE_TYPE'.\n */\nexport const DEFAULT_VALIDATION_MESSAGE_TYPE = VALIDATION_MESSAGE_TYPES.ERROR;\n\n// Default prefix used for ids\nexport const DEFAULT_PREFIX = 'dt';\n\nexport default {\n VALIDATION_MESSAGE_TYPES,\n DESCRIPTION_SIZE_TYPES,\n DEFAULT_VALIDATION_MESSAGE_TYPE,\n DEFAULT_PREFIX,\n};\n"],"names":["VALIDATION_MESSAGE_TYPES","DESCRIPTION_SIZE_TYPES","DESCRIPTION_SIZE_MODIFIERS","LABEL_SIZE_MODIFIERS","EVENT_KEYNAMES","DEFAULT_VALIDATION_MESSAGE_TYPE","DEFAULT_PREFIX","index"],"mappings":"4GAUY,MAACA,EAA2B,CACtC,MAAO,QACP,QAAS,UACT,QAAS,SACX,EAGaC,EAAyB,CACpC,MAAO,KACP,YAAa,IACf,EAGaC,EAA6B,CACxC,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,oBACJ,GAAI,mBACN,EAGaC,EAAuB,CAClC,GAAI,cACJ,GAAI,cACJ,GAAI,GACJ,GAAI,cACJ,GAAI,aACN,EAEaC,EAAiB,CAC5B,IAAK,MACL,OAAQ,SACR,IAAK,MACL,MAAO,QACP,MAAO,QACP,SAAU,WACV,GAAI,KACJ,QAAS,UACT,KAAM,OACN,UAAW,YACX,MAAO,QACP,WAAY,aACZ,KAAM,OACN,UAAW,YACX,KAAM,OACN,IAAK,KACP,EAMaC,EAAkCL,EAAyB,MAG3DM,EAAiB,KAEfC,EAAA,CACb,yBAAAP,EACA,uBAAAC,EACA,gCAAAI,EACA,eAAAC,CACF"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./item-layout.cjs"),s=require("./avatar.cjs"),e=require("vue"),u=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js");require("./utils.cjs");require("./constants.cjs");require("@dialpad/dialtone-icons/icons.json");require("../chunks/icon_constants-2S_OSQ1t.js");require("./presence.cjs");require("./icon.cjs");require("@dialpad/dialtone-icons/vue3");const m={name:"DtRecipeContactInfo",components:{DtAvatar:s.DtAvatar,DtItemLayout:d.DtItemLayout},props:{role:{type:String,default:""},showAvatar:{type:Boolean,default:!0},avatarSrc:{type:String,default:""},avatarSeed:{type:String,default:null},avatarFullName:{type:String,default:""},avatarIcon:{type:String,default:null},avatarSize:{type:String,default:"lg"},avatarLabelledBy:{type:String,default:""},presence:{type:String,default:null},avatarList:{type:Array,default:null}},emits:["avatar-click"],methods:{avatarClick(){this.$emit("avatar-click")}}},f=["aria-labelledby"],v={key:0,class:"dt-contact-info--avatars"},y={"data-qa":"contact-info-header"},_={"data-qa":"contact-info-subtitle"},g={"data-qa":"contact-info-bottom"},k={"data-qa":"contact-info-right"};function S(n,o,t,b,q,r){const l=e.resolveComponent("dt-avatar"),c=e.resolveComponent("dt-item-layout");return e.openBlock(),e.createBlock(c,{role:t.role,"data-qa":"contact-info",class:"dt-contact-info"},e.createSlots({default:e.withCtx(()=>[e.createElementVNode("div",y,[e.renderSlot(n.$slots,"header",{},void 0,!0)])]),subtitle:e.withCtx(()=>[e.createElementVNode("div",_,[e.renderSlot(n.$slots,"subtitle",{},void 0,!0)])]),_:2},[t.showAvatar?{name:"left",fn:e.withCtx(()=>[e.createElementVNode("button",{class:"dt-contact-info__left","data-qa":"contact-info-left","aria-labelledby":t.avatarLabelledBy,onClick:o[0]||(o[0]=(...a)=>r.avatarClick&&r.avatarClick(...a))},[t.avatarList?(e.openBlock(),e.createElementBlock("span",v,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.avatarList,(a,i)=>(e.openBlock(),e.createBlock(l,{key:i,size:t.avatarSize,seed:a.seed,"full-name":a.fullName,"image-src":a.src,"image-alt":"","icon-name":t.avatarIcon,"overlay-icon":a.icon,"overlay-text":a.text,"avatar-class":[{"d-mln24":i>0,"d-bc-brand":!!a.halo}]},null,8,["size","seed","full-name","image-src","icon-name","overlay-icon","overlay-text","avatar-class"]))),128))])):(e.openBlock(),e.createBlock(l,{key:1,size:t.avatarSize,"full-name":t.avatarFullName,"image-src":t.avatarSrc,"image-alt":"","icon-name":t.avatarIcon,seed:t.avatarSeed,presence:t.presence},null,8,["size","full-name","image-src","icon-name","seed","presence"]))],8,f)]),key:"0"}:void 0,n.$slots.bottom?{name:"bottom",fn:e.withCtx(()=>[e.createElementVNode("div",g,[e.renderSlot(n.$slots,"bottom",{},void 0,!0)])]),key:"1"}:void 0,n.$slots.right?{name:"right",fn:e.withCtx(()=>[e.createElementVNode("div",k,[e.renderSlot(n.$slots,"right",{},void 0,!0)])]),key:"2"}:void 0]),1032,["role"])}const h=u._(m,[["render",S],["__scopeId","data-v-a3c913d1"]]);exports.DtRecipeContactInfo=h;
2
+ //# sourceMappingURL=contact-info.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-info.cjs","sources":["../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :overlay-icon=\"avatar.icon\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n />\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :seed=\"avatarSeed\"\n :presence=\"presence\"\n />\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: String,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createElementVNode","_renderSlot","_ctx","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar"],"mappings":"qcAsFA,MAAKA,EAAU,CACb,KAAM,sBAEN,WAAY,CACV,SAAAC,EAAQ,sBACRC,EAAY,YACb,EAQD,MAAO,CAIL,KAAM,CACJ,KAAM,OACN,QAAS,EACV,EAKD,WAAY,CACV,KAAM,QACN,QAAS,EACV,EAKD,UAAW,CACT,KAAM,OACN,QAAS,EACV,EAKD,WAAY,CACV,KAAM,OACN,QAAS,IACV,EAMD,eAAgB,CACd,KAAM,OACN,QAAS,EACV,EAKD,WAAY,CACV,KAAM,OACN,QAAS,IACV,EAMD,WAAY,CACV,KAAM,OACN,QAAS,IACV,EAKD,iBAAkB,CAChB,KAAM,OACN,QAAS,EACV,EAQD,SAAU,CACR,KAAM,OACN,QAAS,IACV,EAaD,WAAY,CACV,KAAM,MACN,QAAS,IACV,CACF,EAED,MAAO,CAAC,cAAc,EAEtB,QAAS,CACP,aAAe,CACb,KAAK,MAAM,cAAc,CAC1B,CACF,CACH,iCAxLU,MAAM,4BA6BLC,EAAA,CAAA,UAAQ,qBAAqB,EAO7BC,EAAA,CAAA,UAAQ,uBAAuB,EAU/BC,EAAA,CAAA,UAAQ,qBAAqB,EAU7BC,EAAA,CAAA,UAAQ,oBAAoB,8HAzErCC,EA8EiB,YAAAC,EAAA,CA7Ed,KAAMC,EAAI,KACX,UAAQ,eACR,MAAM,kCA0CK,kBACT,IAGM,CAHNC,EAAA,mBAGM,MAHNP,EAGM,CADJQ,EAAsB,WAAAC,EAAA,OAAA,SAAA,CAAA,EAAA,OAAA,EAAA,MAIf,mBACT,IAGM,CAHNF,EAAA,mBAGM,MAHNN,EAGM,CADJO,EAAwB,WAAAC,EAAA,OAAA,WAAA,CAAA,EAAA,OAAA,EAAA,YAjDpBH,EAAU,iBACf,oBAED,IAkCS,CAlCTC,EAAAA,mBAkCS,SAAA,CAjCP,MAAM,wBACN,UAAQ,oBACP,kBAAiBD,EAAgB,iBACjC,4BAAOI,EAAW,aAAAA,EAAA,YAAA,GAAAC,CAAA,KAGXL,EAAU,YADlBM,EAAAA,YAAAC,EAAAA,mBAiBO,OAjBPC,EAiBO,EAbLF,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAYEE,WAX0B,KAAAC,EAAA,WAAAV,EAAA,WAAlB,CAAAW,EAAQC,mBADlBd,EAYE,YAAAe,EAAA,CAVC,IAAKD,EACL,KAAMZ,EAAU,WAChB,KAAMW,EAAO,KACb,YAAWA,EAAO,SAClB,YAAWA,EAAO,IACnB,YAAU,GACT,YAAWX,EAAU,WACrB,eAAcW,EAAO,KACrB,eAAcA,EAAO,KACrB,eAA4B,CAAA,CAAA,UAAAC,EAA2B,EAAA,aAAA,CAAA,CAAAD,EAAO,KAAI,sIAGvEb,EASE,YAAAe,EAAA,OAPC,KAAMb,EAAU,WAChB,YAAWA,EAAc,eACzB,YAAWA,EAAS,UACrB,YAAU,GACT,YAAWA,EAAU,WACrB,KAAMA,EAAU,WAChB,SAAUA,EAAQ,0GAmBjBG,EAAA,OAAO,aACZ,sBAED,IAGM,CAHNF,EAAA,mBAGM,MAHNL,EAGM,CADJM,EAAsB,WAAAC,EAAA,OAAA,SAAA,CAAA,EAAA,OAAA,EAAA,sBAKlBA,EAAA,OAAO,YACZ,qBAED,IAGM,CAHNF,EAAA,mBAGM,MAHNJ,EAGM,CADJK,EAAqB,WAAAC,EAAA,OAAA,QAAA,CAAA,EAAA,OAAA,EAAA"}
@@ -9,7 +9,6 @@ import "../chunks/icon_constants-OpYAAKwF.js";
9
9
  import "./presence.js";
10
10
  import "./icon.js";
11
11
  import "@dialpad/dialtone-icons/vue3";
12
- import "./skeleton.js";
13
12
  const k = {
14
13
  name: "DtRecipeContactInfo",
15
14
  components: {
@@ -191,8 +190,8 @@ function B(a, c, t, A, D, d) {
191
190
  } : void 0
192
191
  ]), 1032, ["role"]);
193
192
  }
194
- const M = /* @__PURE__ */ b(k, [["render", B], ["__scopeId", "data-v-a3c913d1"]]);
193
+ const K = /* @__PURE__ */ b(k, [["render", B], ["__scopeId", "data-v-a3c913d1"]]);
195
194
  export {
196
- M as DtRecipeContactInfo
195
+ K as DtRecipeContactInfo
197
196
  };
198
197
  //# sourceMappingURL=contact-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact-info.js","sources":["../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :overlay-icon=\"avatar.icon\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n />\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :seed=\"avatarSeed\"\n :presence=\"presence\"\n />\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: String,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createElementVNode","_renderSlot","_ctx","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar"],"mappings":"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"}
1
+ {"version":3,"file":"contact-info.js","sources":["../../recipes/item_layout/contact_info/contact_info.vue"],"sourcesContent":["<template>\n <dt-item-layout\n :role=\"role\"\n data-qa=\"contact-info\"\n class=\"dt-contact-info\"\n >\n <template\n v-if=\"showAvatar\"\n #left\n >\n <button\n class=\"dt-contact-info__left\"\n data-qa=\"contact-info-left\"\n :aria-labelledby=\"avatarLabelledBy\"\n @click=\"avatarClick\"\n >\n <span\n v-if=\"avatarList\"\n class=\"dt-contact-info--avatars\"\n >\n <dt-avatar\n v-for=\"(avatar, index) in avatarList\"\n :key=\"index\"\n :size=\"avatarSize\"\n :seed=\"avatar.seed\"\n :full-name=\"avatar.fullName\"\n :image-src=\"avatar.src\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :overlay-icon=\"avatar.icon\"\n :overlay-text=\"avatar.text\"\n :avatar-class=\"[{ 'd-mln24': index > 0, 'd-bc-brand': !!avatar.halo }]\"\n />\n </span>\n <dt-avatar\n v-else\n :size=\"avatarSize\"\n :full-name=\"avatarFullName\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :icon-name=\"avatarIcon\"\n :seed=\"avatarSeed\"\n :presence=\"presence\"\n />\n </button>\n </template>\n <template #default>\n <div data-qa=\"contact-info-header\">\n <!-- @slot Slot for header information -->\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #subtitle>\n <div data-qa=\"contact-info-subtitle\">\n <!-- @slot Slot for subtitle information -->\n <slot name=\"subtitle\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.bottom\"\n #bottom\n >\n <div data-qa=\"contact-info-bottom\">\n <!-- @slot Slot for information at the bottom -->\n <slot name=\"bottom\" />\n </div>\n </template>\n\n <template\n v-if=\"$slots.right\"\n #right\n >\n <div data-qa=\"contact-info-right\">\n <!-- @slot Slot for the right content -->\n <slot name=\"right\" />\n </div>\n </template>\n </dt-item-layout>\n</template>\n\n<script>\nimport DtItemLayout from '@/components/item_layout/item_layout.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\n\nexport default {\n name: 'DtRecipeContactInfo',\n\n components: {\n DtAvatar,\n DtItemLayout,\n },\n\n /* inheritAttrs: false is generally an option we want to set on library\n components. This allows any attributes passed in that are not recognized\n as props to be passed down to another element or component using v-bind:$attrs\n more info: https://vuejs.org/v2/api/#inheritAttrs */\n // inheritAttrs: false,\n\n props: {\n /**\n * String to use for the item's role.\n */\n role: {\n type: String,\n default: '',\n },\n\n /**\n * Display avatar if `showAvatar` property is true.\n */\n showAvatar: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Optional avatar image url.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar's full name, used to extract initials\n * to display in avatar if `avatarSrc` and `avatarIcon` are empty.\n */\n avatarFullName: {\n type: String,\n default: '',\n },\n\n /**\n * Avatar icon to display if `avatarSrc` is empty.\n */\n avatarIcon: {\n type: String,\n default: null,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n avatarSize: {\n type: String,\n default: 'lg',\n },\n\n /**\n * The aria-labelledby of the button containing avatars\n */\n avatarLabelledBy: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: null,\n },\n\n /**\n * Showing multiple avatars in contact info.\n * The props of array items are: <br>\n * `src` - avatar image url (optional) <br>\n * `fullName` - full name, used to extract initials to display in avatar<br>\n * if `avatarSrc` and `avatarIcon` are empty<br>\n * `seed` - determines uniqueness of avatar background <br>\n * `text` - text that overlays the avatar (optional) <br>\n * `icon` - icon that overlays the avatar (optional) <br>\n * `halo` - halo highlight around the avatar. boolean true/false\n */\n avatarList: {\n type: Array,\n default: null,\n },\n },\n\n emits: ['avatar-click'],\n\n methods: {\n avatarClick () {\n this.$emit('avatar-click');\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dt-contact-info {\n --contact-info-avatar-border-color: var(--dt-color-surface-primary);\n\n display: flex;\n\n &:deep(.dt-item-layout) {\n flex: 1 1 0;\n }\n\n &:deep(.dt-item-layout--content) {\n /*\n DP-74536: Add `min-width` to make the width of \"contact info\" adjustable.\n */\n min-width: var(--dt-space-825);\n }\n\n &:deep(.dt-item-layout--left) {\n /*\n DP-74536: To make 'Avatar' in fixed position when resizing the window.\n */\n min-width: var(--dt-space-650);\n justify-content: flex-start;\n align-items: center;\n }\n\n &:deep(.dt-item-layout--right) {\n /*\n DP-74536: Remove `min-width` which cause extra unused empty space on the right of \"contact info\".\n */\n min-width: 0;\n align-items: center;\n }\n\n &__left {\n position: relative;\n background-color: transparent;\n background-image: none;\n border-width: 0;\n cursor: pointer;\n }\n\n &--avatars {\n margin-right: var(--dt-space-300-negative);\n display: flex;\n flex-direction: row;\n\n .d-avatar {\n border-radius: var(--dt-size-radius-pill);\n border: var(--dt-size-300) solid var(--contact-info-avatar-border-color);\n box-sizing: unset;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","DtAvatar","DtItemLayout","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createBlock","_component_dt_item_layout","$props","_createElementVNode","_renderSlot","_ctx","$options","args","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","avatar","index","_component_dt_avatar"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./emoji-text-wrapper.cjs"),d=require("./avatar.cjs"),l=require("./utils.cjs"),e=require("vue"),m=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js"),p=require("./general-row.cjs");require("../chunks/index-IBtQ5jRJ.js");require("emoji-regex");require("@dialpad/dialtone-emojis");require("./skeleton.cjs");require("../chunks/icon_constants-2S_OSQ1t.js");require("@dialpad/dialtone-icons/icons.json");require("./presence.cjs");require("./icon.cjs");require("@dialpad/dialtone-icons/vue3");require("./constants.cjs");require("./badge.cjs");require("./button.cjs");require("../chunks/link_constants-Kn6kP4i1.js");require("./tooltip.cjs");require("../chunks/popover_constants-hOEhklvr.js");require("tippy.js");require("./lazy-show.cjs");const f={name:"DtRecipeContactRow",components:{DtAvatar:d.DtAvatar,DtRecipeGeneralRow:p.DtRecipeGeneralRow,DtEmojiTextWrapper:c.DtEmojiTextWrapper},inheritAttrs:!1,props:{avatarSrc:{type:String,default:""},avatarPresence:{type:String,default:null},avatarSeed:{type:String,default:null},presenceText:{type:String,default:""},name:{type:String,required:!0},userStatus:{type:String,default:""},muted:{type:Boolean,default:!1},unreadCount:{type:String,default:null},hasUnreads:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},noInitials:{type:Boolean,default:!1},isTyping:{type:Boolean,default:!1},hasCallButton:{type:Boolean,default:!0},callButtonTooltip:{type:String,default:""},unreadCountTooltip:{type:String,default:""}},emits:["call"],computed:{presenceColorClass(){switch(this.avatarPresence){case"active":return"d-fc-success";case"busy":return"d-fc-critical";case"away":return"d-fc-warning";default:return}},contactRowListeners(){return l.extractVueListeners(this.$attrs)},contactDescription(){return l.safeConcatStrings([this.name,this.presenceText,this.userStatus])},iconName(){return this.noInitials?"user":null}}},_={class:"dt-leftbar-row__status"};function y(r,n,t,q,w,a){const i=e.resolveComponent("dt-avatar"),o=e.resolveComponent("dt-emoji-text-wrapper"),s=e.resolveComponent("dt-recipe-general-row");return e.openBlock(),e.createBlock(s,e.mergeProps({"unread-count":t.unreadCount,description:a.contactDescription,"has-unreads":t.hasUnreads,selected:t.selected,"has-call-button":t.hasCallButton,muted:t.muted,"is-typing":t.isTyping,"call-button-tooltip":t.callButtonTooltip,"unread-count-tooltip":t.unreadCountTooltip},r.$attrs,e.toHandlers(a.contactRowListeners),{onCall:n[0]||(n[0]=u=>r.$emit("call",u))}),{left:e.withCtx(()=>[e.createVNode(i,{"full-name":t.name,"image-src":t.avatarSrc,"image-alt":"","icon-name":a.iconName,"icon-size":"200",size:"sm",seed:t.avatarSeed,presence:t.avatarPresence},null,8,["full-name","image-src","icon-name","seed","presence"])]),label:e.withCtx(()=>[e.createVNode(o,{class:"dt-leftbar-row__description","data-qa":"dt-leftbar-row-description",size:"200"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.name),1)]),_:1}),e.createElementVNode("div",_,[t.presenceText?(e.openBlock(),e.createElementBlock("span",{key:0,"data-qa":"dt-leftbar-row-presence-text",class:e.normalizeClass(["dt-leftbar-row__meta-context",a.presenceColorClass])},e.toDisplayString(t.presenceText),3)):e.createCommentVNode("",!0),t.userStatus?(e.openBlock(),e.createBlock(o,{key:1,size:"100","element-type":"span","data-qa":"dt-leftbar-row-user-status",class:"dt-leftbar-row__meta-custom"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.userStatus),1)]),_:1})):e.createCommentVNode("",!0)])]),_:1},16,["unread-count","description","has-unreads","selected","has-call-button","muted","is-typing","call-button-tooltip","unread-count-tooltip"])}const g=m._(f,[["render",y]]);exports.DtRecipeContactRow=g;
2
+ //# sourceMappingURL=contact-row.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-row.cjs","sources":["../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n :call-button-tooltip=\"callButtonTooltip\"\n :unread-count-tooltip=\"unreadCountTooltip\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n :icon-name=\"iconName\"\n icon-size=\"200\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n />\n </template>\n <template #label>\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"dt-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-leftbar-row-presence-text\"\n :class=\"['dt-leftbar-row__meta-context', presenceColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-leftbar-row-user-status\"\n class=\"dt-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceColorClass () {\n switch (this.avatarPresence) {\n case 'active':\n return 'd-fc-success';\n case 'busy':\n return 'd-fc-critical';\n case 'away':\n return 'd-fc-warning';\n default:\n return undefined;\n }\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n\n iconName () {\n return this.noInitials ? 'user' : null;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","extractVueListeners","safeConcatStrings","_hoisted_1","_openBlock","_createBlock","_component_dt_recipe_general_row","_mergeProps","$props","$options","_ctx","_toHandlers","_cache","$event","_createVNode","_component_dt_avatar","_component_dt_emoji_text_wrapper","_createElementVNode","_createElementBlock"],"mappings":"m0BA+DA,MAAKA,EAAU,CACb,KAAM,qBAEN,WAAY,CACV,SAAAC,EAAQ,SACR,mBAAAC,EAAkB,mBAClB,mBAAAC,EAAkB,kBACnB,EAED,aAAc,GAEd,MAAO,CAKL,UAAW,CACT,KAAM,OACN,QAAS,EACV,EASD,eAAgB,CACd,KAAM,OACN,QAAS,IACV,EAKD,WAAY,CACV,KAAM,OACN,QAAS,IACV,EAKD,aAAc,CACZ,KAAM,OACN,QAAS,EACV,EAKD,KAAM,CACJ,KAAM,OACN,SAAU,EACX,EAKD,WAAY,CACV,KAAM,OACN,QAAS,EACV,EAKD,MAAO,CACL,KAAM,QACN,QAAS,EACV,EAKD,YAAa,CACX,KAAM,OACN,QAAS,IACV,EAMD,WAAY,CACV,KAAM,QACN,QAAS,EACV,EAKD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAKD,WAAY,CACV,KAAM,QACN,QAAS,EACV,EAKD,SAAU,CACR,KAAM,QACN,QAAS,EACV,EAKD,cAAe,CACb,KAAM,QACN,QAAS,EACV,EAKD,kBAAmB,CACjB,KAAM,OACN,QAAS,EACV,EAKD,mBAAoB,CAClB,KAAM,OACN,QAAS,EACV,CACF,EAED,MAAO,CAOL,MACD,EAED,SAAU,CACR,oBAAsB,CACpB,OAAQ,KAAK,eAAc,CACzB,IAAK,SACH,MAAO,eACT,IAAK,OACH,MAAO,gBACT,IAAK,OACH,MAAO,eACT,QACE,MACJ,CACD,EAED,qBAAuB,CACrB,OAAOC,EAAmB,oBAAC,KAAK,MAAM,CACvC,EAED,oBAAsB,CACpB,OAAOC,EAAiB,kBAAC,CAAC,KAAK,KAAM,KAAK,aAAc,KAAK,UAAU,CAAC,CACzE,EAED,UAAY,CACV,OAAO,KAAK,WAAa,OAAS,IACnC,CACF,CACH,EA3MWC,EAAA,CAAA,MAAM,wBAAwB,8JAlCvC,OAAAC,YAAA,EAAAC,cAqDwBC,EArDxBC,EAAAA,WAqDwB,CApDrB,eAAcC,EAAW,YACzB,YAAaC,EAAkB,mBAC/B,cAAaD,EAAU,WACvB,SAAUA,EAAQ,SAClB,kBAAiBA,EAAa,cAC9B,MAAOA,EAAK,MACZ,YAAWA,EAAQ,SACnB,sBAAqBA,EAAiB,kBACtC,uBAAsBA,EAAkB,oBACjCE,EAAM,OACdC,EAAM,WAAoBF,EAAD,mBAAA,EAAA,CACxB,OAAIG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEH,EAAK,MAAA,OAASG,CAAM,MAEhB,eACT,IASE,CATFC,EAAAA,YASEC,EAAA,CARC,YAAWP,EAAI,KACf,YAAWA,EAAS,UACrB,YAAU,GACT,YAAWC,EAAQ,SACpB,YAAU,MACV,KAAK,KACJ,KAAMD,EAAU,WAChB,SAAUA,EAAc,kFAGlB,gBACT,IAMwB,CANxBM,EAAAA,YAMwBE,EAAA,CALtB,MAAM,8BACN,UAAQ,6BACR,KAAK,0BAEL,IAAU,qCAAPR,EAAI,IAAA,EAAA,CAAA,UAETS,EAAA,mBAiBM,MAjBNd,EAiBM,CAfIK,EAAY,4BADpBU,EAMO,mBAAA,OAAA,OAJL,UAAQ,+BACP,uDAAwCT,EAAkB,kBAAA,CAAA,qBAExDD,EAAY,YAAA,EAAA,CAAA,+BAGTA,EAAU,0BADlBH,EAQwB,YAAAW,EAAA,OANtB,KAAK,MACL,eAAa,OACb,UAAQ,6BACR,MAAM,kDAEN,IAAgB,qCAAbR,EAAU,UAAA,EAAA,CAAA"}
@@ -4,7 +4,7 @@ import { extractVueListeners as w, safeConcatStrings as S } from "./utils.js";
4
4
  import { resolveComponent as r, openBlock as n, createBlock as c, mergeProps as C, toHandlers as h, withCtx as a, createVNode as u, createTextVNode as d, toDisplayString as o, createElementVNode as x, createElementBlock as b, normalizeClass as v, createCommentVNode as m } from "vue";
5
5
  import { _ as B } from "../chunks/_plugin-vue_export-helper-hUChTQA_.js";
6
6
  import { DtRecipeGeneralRow as T } from "./general-row.js";
7
- import "../chunks/index-BK8b99k1.js";
7
+ import "../chunks/index-mRmwpCBG.js";
8
8
  import "emoji-regex";
9
9
  import "@dialpad/dialtone-emojis";
10
10
  import "./skeleton.js";
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),s=require("date-fns"),x=require("./stack.cjs"),M=require("./tooltip.cjs"),p=require("./button.cjs"),w=require("./icon.cjs");require("../chunks/stack_constants-m9Ickqw0.js");require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js");require("../chunks/popover_constants-hOEhklvr.js");require("tippy.js");require("./utils.cjs");require("./constants.cjs");require("./lazy-show.cjs");require("../chunks/link_constants-Kn6kP4i1.js");require("@dialpad/dialtone-icons/vue3");require("../chunks/icon_constants-2S_OSQ1t.js");require("@dialpad/dialtone-icons/icons.json");const N=0,q="MMMM",L="long",T=t=>t?new Date(t):new Date,S=(t,r,c)=>{const a=T(JSON.parse(JSON.stringify(t))),n=[];for(let l=0;l<7;l++){const i=s.addDays(a,l),f=s.getMonth(i)!==r;n.push({text:i.getDate(),value:i,currentMonth:!f,isFirstDayOfMonth:i.getDate()===1&&!f,selected:c?i.getDate()===c&&!f:!1})}return n},Y=(t,r)=>!t||!r?!1:s.isEqual(t,r),B=(t,r,c)=>{const a=[],n=T(new Date(r,t)),l=T(new Date(r,t+1,0)),i=N,f=s.startOfWeek(n,{weekStartsOn:i}),D=v=>{const y=S(v,t,c);if(a.push({days:y}),!a[a.length-1].days.some(k=>Y(k.value,l))){const k=s.addDays(v,7);D(k)}};return D(f),a},C=(t,r)=>{const c=[1,2,3,4,5,6,7].map(l=>new Intl.DateTimeFormat(t,{weekday:"short",timeZone:"UTC"}).format(new Date(`2017-01-0${l}T00:00:00+00:00`)).slice(0,2)),a=c.slice(0,r),n=c.slice(r+1,c.length);return[c[r]].concat(...n).concat(...a)},F=(t,r,c)=>new Intl.DateTimeFormat(c,{month:r}).format(new Date(2e3,t,1)),V=t=>{const r=new Date(t),c=s.getDay(r),a=s.addMonths(r,1),n=s.startOfMonth(a),l=s.getDay(n),i=(c-l+7)%7,f=s.addDays(n,i);return s.getDate(f)},E=t=>{const r=new Date(t),c=s.getDay(r);let n=s.endOfMonth(s.subMonths(r,1));for(;s.getDay(n)!==c;)n=s.addDays(n,-1);return s.getDate(n)};function P(t,r){const c=e.ref(s.getMonth(t.selectedDate)),a=e.ref(s.getYear(t.selectedDate)),n=e.ref(null),l=e.ref(0),i=e.ref([]),f=e.computed(()=>B(c.value,a.value,n.value)),D=e.computed(()=>(o,g,$)=>F(o,g,$));e.watch(c,()=>{d(),r("calendar-days",f.value)},{immediate:!0}),e.watch(a,()=>{d(),r("calendar-days",f.value)},{immediate:!0});function v(o){i.value.includes(o)||i.value.push(o)}function y(){i.value[0].$el.focus()}function k(o){switch(o.key){case"ArrowLeft":o.preventDefault(),l.value===0?(l.value=3,i.value[l.value].$el.focus()):(l.value--,i.value[l.value].$el.focus());break;case"ArrowRight":o.preventDefault(),l.value===3?(l.value=0,i.value[l.value].$el.focus()):(l.value++,i.value[l.value].$el.focus());break;case"ArrowDown":o.preventDefault(),r("focus-first-day");break;case"Tab":o.preventDefault(),r("focus-first-day");break;case"Escape":r("close-datepicker");break}}function d(){const o=s.getYear(t.selectedDate),g=s.getMonth(t.selectedDate);o!==a.value||g!==c.value?n.value=null:n.value=s.getDate(t.selectedDate)}function h(o){(c.value===0&&o===-1||c.value===11&&o===1)&&(a.value+=o);const g=s.set(t.selectedDate,{month:c.value,year:a.value}),$=o===1?s.addMonths(g,1):s.subMonths(g,1);c.value=s.getMonth($)}function m(o){a.value=a.value+o}function b(){h(1)}function u(){h(-1)}return{selectMonth:c,selectYear:a,formattedMonth:D,setDayRef:v,focusMonthYearPicker:y,handleKeyDown:k,changeMonth:h,changeYear:m,goToNextMonth:b,goToPrevMonth:u}}const O={id:"calendar-heading",class:"d-datepicker__month-year-title"},A={__name:"month-year-picker",props:{locale:{type:String,required:!0},prevMonthLabel:{type:String,required:!0},nextMonthLabel:{type:String,required:!0},prevYearLabel:{type:String,required:!0},nextYearLabel:{type:String,required:!0},changeToLabel:{type:String,required:!0},selectedDate:{type:Date,required:!0}},emits:["calendar-days","focus-first-day","focus-last-day","close-datepicker"],setup(t,{expose:r,emit:c}){const a=t,n=c,{selectMonth:l,selectYear:i,formattedMonth:f,setDayRef:D,focusMonthYearPicker:v,handleKeyDown:y,changeMonth:k,changeYear:d,goToNextMonth:h,goToPrevMonth:m}=P(a,n);return e.onMounted(()=>{v()}),r({focusMonthYearPicker:v,goToNextMonth:h,goToPrevMonth:m}),(b,u)=>(e.openBlock(),e.createBlock(e.unref(x.DtStack),{direction:"row",class:"d-datepicker__month-year",gap:"300"},{default:e.withCtx(()=>[e.createVNode(e.unref(x.DtStack),{as:"nav",direction:"row",gap:"200",class:"d-datepicker__nav"},{default:e.withCtx(()=>[e.createVNode(e.unref(M.DtTooltip),{message:t.prevYearLabel,placement:"top"},{anchor:e.withCtx(()=>[e.createVNode(e.unref(p.DtButton),{id:"prevYearButton",ref:o=>{o&&e.unref(D)(o)},size:"xs",importance:"clear",kind:"muted",circle:!0,class:"d-datepicker__nav-btn",type:"button","aria-label":`${t.changeToLabel} ${t.prevYearLabel} ${e.unref(i)-1}`,onClick:u[0]||(u[0]=o=>e.unref(d)(-1)),onKeydown:u[1]||(u[1]=o=>e.unref(y)(o))},{default:e.withCtx(()=>[e.createVNode(e.unref(w.DtIcon),{name:"chevrons-left",size:"200"})]),_:1},8,["aria-label"])]),_:1},8,["message"]),e.createVNode(e.unref(M.DtTooltip),{message:t.prevMonthLabel,placement:"top"},{anchor:e.withCtx(()=>[e.createVNode(e.unref(p.DtButton),{id:"prevMonthButton",ref:o=>{o&&e.unref(D)(o)},size:"xs",importance:"clear",kind:"muted",circle:!0,class:"d-datepicker__nav-btn",type:"button","aria-label":`${t.changeToLabel} ${t.prevMonthLabel} ${e.unref(f)(e.unref(l)-1,e.unref(L),t.locale)}`,onClick:u[2]||(u[2]=o=>e.unref(k)(-1)),onKeydown:u[3]||(u[3]=o=>e.unref(y)(o))},{default:e.withCtx(()=>[e.createVNode(e.unref(w.DtIcon),{name:"chevron-left",size:"200"})]),_:1},8,["aria-label"])]),_:1},8,["message"])]),_:1}),e.createElementVNode("div",O,e.toDisplayString(e.unref(f)(e.unref(l),e.unref(L),t.locale))+" "+e.toDisplayString(e.unref(i)),1),e.createVNode(e.unref(x.DtStack),{as:"nav",direction:"row",gap:"200",class:"d-datepicker__nav"},{default:e.withCtx(()=>[e.createVNode(e.unref(M.DtTooltip),{message:t.nextMonthLabel,placement:"top"},{anchor:e.withCtx(()=>[e.createVNode(e.unref(p.DtButton),{id:"nextMonthButton",ref:o=>{o&&e.unref(D)(o)},size:"xs",importance:"clear",kind:"muted",circle:!0,class:"d-datepicker__nav-btn",type:"button","aria-label":`${t.changeToLabel} ${t.nextMonthLabel} ${e.unref(f)(e.unref(l)+1,e.unref(L),t.locale)}`,onClick:u[4]||(u[4]=o=>e.unref(k)(1)),onKeydown:u[5]||(u[5]=o=>e.unref(y)(o))},{default:e.withCtx(()=>[e.createVNode(e.unref(w.DtIcon),{name:"chevron-right",size:"200"})]),_:1},8,["aria-label"])]),_:1},8,["message"]),e.createVNode(e.unref(M.DtTooltip),{message:t.nextYearLabel,placement:"top"},{anchor:e.withCtx(()=>[e.createVNode(e.unref(p.DtButton),{id:"nextYearButton",ref:o=>{o&&e.unref(D)(o)},size:"xs",importance:"clear",kind:"muted",circle:!0,class:"d-datepicker__nav-btn",type:"button","aria-label":`${t.changeToLabel} ${t.nextYearLabel} ${e.unref(i)+1}`,onClick:u[6]||(u[6]=o=>e.unref(d)(1)),onKeydown:u[7]||(u[7]=o=>e.unref(y)(o))},{default:e.withCtx(()=>[e.createVNode(e.unref(w.DtIcon),{name:"chevrons-right",size:"200"})]),_:1},8,["aria-label"])]),_:1},8,["message"])]),_:1})]),_:1}))}};function I(t,r){const c=e.ref(null),a=e.ref(0),n=e.ref([]),l=e.computed(()=>C(t.locale,N));e.watch(()=>t.calendarDays,()=>{a.value=0,n.value=[],c.value=null});function i(d){return`${t.selectDayLabel} ${d.text} ${s.format(d.value,q)} ${s.getYear(d.value)}`}function f(d,h){!n.value.some(m=>m.el===d)&&h.currentMonth&&n.value.push({el:d,day:h})}function D(d){switch(d.key){case"ArrowUp":d.preventDefault(),a.value-=7;try{n.value[a.value].el.$el.focus()}catch{const m=E(n.value[a.value+7].day.value);r("go-to-prev-month"),e.nextTick(()=>{n.value[m-1].el.$el.focus(),a.value+=m-1})}break;case"ArrowDown":d.preventDefault(),a.value+=7;try{n.value[a.value].el.$el.focus()}catch{const m=V(n.value[a.value-7].day.value);r("go-to-next-month"),e.nextTick(()=>{n.value[m-1].el.$el.focus(),a.value+=m-1})}break;case"ArrowLeft":d.preventDefault(),a.value>0?(a.value-=1,n.value[a.value].el.$el.focus()):(r("go-to-prev-month"),y());break;case"ArrowRight":d.preventDefault(),a.value<n.value.length-1?(a.value+=1,n.value[a.value].el.$el.focus()):(r("go-to-next-month"),v());break;case"Tab":d.preventDefault(),r("focus-month-year-picker");break;case"Escape":r("close-datepicker");break}}function v(){a.value=0,e.nextTick(()=>{n.value[a.value].el.$el.focus()})}function y(){e.nextTick(()=>{a.value=n.value.length-1,n.value[a.value].el.$el.focus()})}function k(d){d.currentMonth&&(c.value=d.text,r("select-date",d.value))}return{selectedDay:c,weekDays:l,dayAriaLabel:i,setDayRef:f,handleKeyDown:D,focusFirstDay:v,selectDay:k}}const R={class:"d-datepicker__calendar","aria-labelledby":"calendar-heading"},z=["title","aria-label"],K={__name:"calendar",props:{calendarDays:{type:Array,required:!0},locale:{type:String,required:!0},selectDayLabel:{type:String,required:!0}},emits:["select-date","focus-month-year-picker","close-datepicker","go-to-next-month","go-to-prev-month"],setup(t,{expose:r,emit:c}){const a=t,n=c,{selectedDay:l,weekDays:i,dayAriaLabel:f,setDayRef:D,handleKeyDown:v,focusFirstDay:y,selectDay:k}=I(a,n);return r({focusFirstDay:y}),(d,h)=>(e.openBlock(),e.createElementBlock("table",R,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),m=>(e.openBlock(),e.createElementBlock("th",{key:m,scope:"col",class:"d-datepicker__cell d-datepicker__cell--header"},[e.createElementVNode("span",{class:"d-datepicker__weekday",title:m,"aria-label":m},e.toDisplayString(m),9,z)]))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.calendarDays,(m,b)=>(e.openBlock(),e.createElementBlock("tr",{key:b},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.days,(u,o)=>(e.openBlock(),e.createElementBlock("td",{key:b+o,class:"d-datepicker__cell",role:"listbox"},[e.createVNode(e.unref(p.DtButton),{ref_for:!0,ref:g=>{g&&e.unref(D)(g,u)},class:e.normalizeClass(["d-datepicker__day",{"d-datepicker__day--disabled":!u.currentMonth,"d-datepicker__day--selected":e.unref(l)?u.text===e.unref(l)&&u.currentMonth:u.selected}]),circle:!0,size:"sm",importance:"clear",disabled:!u.currentMonth,type:"button","aria-selected":e.unref(l)?u.text===e.unref(l)&&u.currentMonth:u.selected,"aria-label":e.unref(f)(u),role:"option",onClick:g=>e.unref(k)(u),onKeydown:h[0]||(h[0]=g=>e.unref(v)(g))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.text),1)]),_:2},1032,["disabled","class","aria-selected","aria-label","onClick"])]))),128))]))),128))])]))}},W={class:"d-datepicker__hd"},G={class:"d-datepicker__bd"},U={__name:"datepicker",props:{prevMonthLabel:{type:String,required:!0},nextMonthLabel:{type:String,required:!0},prevYearLabel:{type:String,required:!0},nextYearLabel:{type:String,required:!0},selectDayLabel:{type:String,required:!0},changeToLabel:{type:String,required:!0},locale:{type:String,default:"en-US"},selectedDate:{type:Date,default:()=>new Date}},emits:["selected-date","close-datepicker"],setup(t){const r=e.ref([]);function c(a){r.value=a}return(a,n)=>(e.openBlock(),e.createBlock(e.unref(x.DtStack),{class:"d-datepicker",gap:"400"},{default:e.withCtx(()=>[e.createElementVNode("div",W,[e.createVNode(A,{ref:"monthYearPicker",locale:t.locale,"prev-month-label":t.prevMonthLabel,"next-month-label":t.nextMonthLabel,"prev-year-label":t.prevYearLabel,"next-year-label":t.nextYearLabel,"change-to-label":t.changeToLabel,"selected-date":t.selectedDate,onCalendarDays:c,onFocusFirstDay:n[0]||(n[0]=l=>a.$refs.calendar.focusFirstDay()),onFocusLastDay:n[1]||(n[1]=l=>a.$refs.calendar.focusLastDay()),onCloseDatepicker:n[2]||(n[2]=l=>a.$emit("close-datepicker"))},null,8,["locale","prev-month-label","next-month-label","prev-year-label","next-year-label","change-to-label","selected-date"])]),e.createElementVNode("div",G,[e.createVNode(K,{ref:"calendar",locale:t.locale,"calendar-days":r.value,"select-day-label":t.selectDayLabel,onSelectDate:n[3]||(n[3]=l=>a.$emit("selected-date",l)),onFocusMonthYearPicker:n[4]||(n[4]=l=>a.$refs.monthYearPicker.focusMonthYearPicker()),onCloseDatepicker:n[5]||(n[5]=l=>a.$emit("close-datepicker")),onGoToNextMonth:n[6]||(n[6]=l=>a.$refs.monthYearPicker.goToNextMonth()),onGoToPrevMonth:n[7]||(n[7]=l=>a.$refs.monthYearPicker.goToPrevMonth())},null,8,["locale","calendar-days","select-day-label"])])]),_:1}))}};function H(t,r="default"){return new Intl.DateTimeFormat(r,{weekday:"long",year:"numeric",month:"long",day:"numeric"}).format(t)}function J(t,r="default"){return new Intl.DateTimeFormat(r,{year:"numeric",month:"long",day:"numeric"}).format(t)}function j(t,r="default",c=!0){const a=c?{weekday:"short",year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"short",day:"numeric"};return new Intl.DateTimeFormat(r,a).format(t)}function Z(t,r="default",c=!1){const a=c?"short":"long";return new Intl.DateTimeFormat(r,{month:a,day:"numeric"}).format(t)}function Q(t,r="default"){return new Intl.DateTimeFormat(r,{year:"2-digit",month:"2-digit",day:"2-digit"}).format(t)}exports.DtDatepicker=U;exports.formatLong=H;exports.formatMedium=J;exports.formatNoYear=Z;exports.formatNumerical=Q;exports.formatShort=j;
2
+ //# sourceMappingURL=datepicker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datepicker.cjs","sources":["../../components/datepicker/datepicker_constants.js","../../components/datepicker/utils.js","../../components/datepicker/composables/useMonthYearPicker.js","../../components/datepicker/modules/month-year-picker.vue","../../components/datepicker/composables/useCalendar.js","../../components/datepicker/modules/calendar.vue","../../components/datepicker/datepicker.vue","../../components/datepicker/formatUtils.js"],"sourcesContent":["/**\n * Week start day\n * 0 - Sunday\n * 1 - Monday\n */\nexport const WEEK_START = 0;\n\nexport const MONTH_FORMAT = 'MMMM';\n\nexport const INTL_MONTH_FORMAT = 'long';\n","import {\n startOfWeek, addDays, getMonth, isEqual,\n addMonths, startOfMonth, getDay, getDate,\n subMonths, endOfMonth,\n} from 'date-fns';\nimport { WEEK_START } from '@/components/datepicker/datepicker_constants.js';\n\nconst _parsedGetDate = (value) => (value ? new Date(value) : new Date());\n\n/**\n * Get 7 days from the provided start date, month is used to check\n * whether the date is from the specified month or in the offset\n */\nconst getWeekDays = (startDay, month, selectedDay) => {\n const startDate = _parsedGetDate(JSON.parse(JSON.stringify(startDay)));\n const dates = [];\n for (let i = 0; i < 7; i++) {\n const next = addDays(startDate, i);\n const isNext = getMonth(next) !== month;\n dates.push({\n text: next.getDate(),\n value: next,\n currentMonth: !isNext,\n isFirstDayOfMonth: next.getDate() === 1 && !isNext,\n // will be selected if the date is the same as the selected day and is from the current month\n selected: selectedDay ? (next.getDate() === selectedDay && !isNext) : false,\n });\n }\n return dates;\n};\n\nconst isDateEqual = (date, dateToCompare) => {\n if (!date || !dateToCompare) {\n return false;\n }\n return isEqual(date, dateToCompare);\n};\n\n/**\n * Get days for the calendar to be displayed in a table grouped by weeks\n */\nexport const getCalendarDays = (month, year, selectedDay) => {\n const weeks = [];\n const firstDate = _parsedGetDate(new Date(year, month));\n const lastDate = _parsedGetDate(new Date(year, month + 1, 0));\n\n const weekStartsOn = WEEK_START;\n\n const firstDateInCalendar = startOfWeek(firstDate, { weekStartsOn });\n\n const addDaysToWeek = (date) => {\n const days = getWeekDays(date, month, selectedDay);\n\n weeks.push({ days });\n\n if (\n !weeks[weeks.length - 1].days.some((day) =>\n isDateEqual(day.value, lastDate),\n )\n ) {\n const nextDate = addDays(date, 7);\n addDaysToWeek(nextDate);\n }\n };\n\n addDaysToWeek(firstDateInCalendar);\n\n return weeks;\n};\n\n/**\n * Generate week day names based on locale and in order specified in week start\n */\nexport const getWeekDayNames = (locale, weekStart) => {\n // Get list in order from sun ... sat\n const days = [1, 2, 3, 4, 5, 6, 7].map((day) => {\n return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' })\n .format(new Date(`2017-01-0${day}T00:00:00+00:00`))\n .slice(0, 2);\n });\n\n // Get days that are in order before specified week start\n const beforeWeekStart = days.slice(0, weekStart);\n // Get days that are in order after specified week start\n const afterWeekStart = days.slice(weekStart + 1, days.length);\n\n // return them in correct order\n return [days[weekStart]].concat(...afterWeekStart).concat(...beforeWeekStart);\n};\n\nexport const formatMonth = (month, monthFormat, locale) => {\n return new Intl.DateTimeFormat(locale, { month: monthFormat }).format(new Date(2000, month, 1));\n};\n\nexport const calculateNextFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n const nextMonthDate = addMonths(date, 1);\n const nextMonthStart = startOfMonth(nextMonthDate);\n const nextMonthStartWeekday = getDay(nextMonthStart);\n\n const dayDifference = (currentWeekday - nextMonthStartWeekday + 7) % 7;\n\n // Add the difference in days to the first day of the next month\n const focusDate = addDays(nextMonthStart, dayDifference);\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n\nexport const calculatePrevFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n\n // Move to the last day of the previous month\n const lastDayOfPrevMonth = endOfMonth(subMonths(date, 1));\n let focusDate = lastDayOfPrevMonth;\n\n // Adjust to the same weekday in the last week of the previous month\n while (getDay(focusDate) !== currentWeekday) {\n focusDate = addDays(focusDate, -1);\n }\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n","import { computed, ref, watch } from 'vue';\nimport { addMonths, getDate, getMonth, getYear, set, subMonths } from 'date-fns';\nimport { formatMonth, getCalendarDays } from '@/components/datepicker/utils.js';\n\nexport function useMonthYearPicker (props, emits) {\n const selectMonth = ref(getMonth(props.selectedDate));\n const selectYear = ref(getYear(props.selectedDate));\n const highlightedDay = ref(null);\n const focusPicker = ref(0);\n const focusRefs = ref([]);\n\n const calendarDays = computed(() => {\n return getCalendarDays(selectMonth.value, selectYear.value, highlightedDay.value);\n });\n\n const formattedMonth = computed(() => {\n return (month, format, locale) => formatMonth(month, format, locale);\n });\n\n watch(selectMonth, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n watch(selectYear, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n function setDayRef (el) {\n if (!focusRefs.value.includes(el)) {\n focusRefs.value.push(el);\n }\n }\n\n function focusMonthYearPicker () {\n focusRefs.value[0].$el.focus();\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (focusPicker.value === 0) {\n focusPicker.value = 3;\n focusRefs.value[focusPicker.value].$el.focus();\n } else {\n focusPicker.value--;\n focusRefs.value[focusPicker.value].$el.focus();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusPicker.value === 3) {\n focusPicker.value = 0;\n focusRefs.value[focusPicker.value].$el.focus();\n } else {\n focusPicker.value++;\n focusRefs.value[focusPicker.value].$el.focus();\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function highlightDay () {\n const year = getYear(props.selectedDate);\n const month = getMonth(props.selectedDate);\n\n if (year !== selectYear.value || month !== selectMonth.value) {\n highlightedDay.value = null;\n } else {\n highlightedDay.value = getDate(props.selectedDate);\n }\n }\n\n function changeMonth (value) {\n // Adjust year when changing from January to December or vice versa\n if ((selectMonth.value === 0 && value === -1) || (selectMonth.value === 11 && value === 1)) {\n selectYear.value += value;\n }\n\n // Calculate the new date by adding or subtracting months\n const initialDate = set(props.selectedDate, { month: selectMonth.value, year: selectYear.value });\n const newDate = value === 1 ? addMonths(initialDate, 1) : subMonths(initialDate, 1);\n\n // Update the selected month\n selectMonth.value = getMonth(newDate);\n }\n\n function changeYear (value) {\n selectYear.value = selectYear.value + value;\n }\n\n function goToNextMonth () {\n changeMonth(1);\n }\n\n function goToPrevMonth () {\n changeMonth(-1);\n }\n\n return {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n };\n}\n","<template>\n <dt-stack\n direction=\"row\"\n class=\"d-datepicker__month-year\"\n gap=\"300\"\n >\n <dt-stack\n as=\"nav\"\n direction=\"row\"\n gap=\"200\"\n class=\"d-datepicker__nav\"\n >\n <dt-tooltip\n :message=\"prevYearLabel\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${prevYearLabel} ${selectYear - 1}`\"\n @click=\"changeYear(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevrons-left\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :message=\"prevMonthLabel\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"\n `${changeToLabel} ${prevMonthLabel} ${formattedMonth(selectMonth - 1, INTL_MONTH_FORMAT, locale)}`\n \"\n @click=\"changeMonth(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevron-left\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n <div\n id=\"calendar-heading\"\n class=\"d-datepicker__month-year-title\"\n >\n {{ formattedMonth(selectMonth, INTL_MONTH_FORMAT, locale) }}\n\n {{ selectYear }}\n </div>\n <dt-stack\n as=\"nav\"\n direction=\"row\"\n gap=\"200\"\n class=\"d-datepicker__nav\"\n >\n <dt-tooltip\n :message=\"nextMonthLabel\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"\n `${changeToLabel} ${nextMonthLabel} ${formattedMonth(selectMonth + 1, INTL_MONTH_FORMAT, locale)}`\n \"\n @click=\"changeMonth(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevron-right\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :message=\"nextYearLabel\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${nextYearLabel} ${selectYear + 1}`\"\n @click=\"changeYear(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevrons-right\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n </dt-stack>\n</template>\n\n<script setup>\nimport { DtIcon } from '@/components/icon';\nimport { DtStack } from '@/components/stack';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { INTL_MONTH_FORMAT } from '../datepicker_constants';\nimport { onMounted } from 'vue';\nimport { useMonthYearPicker } from '@/components/datepicker/composables/useMonthYearPicker.js';\n\nconst props = defineProps({\n locale: {\n type: String,\n required: true,\n },\n\n prevMonthLabel: {\n type: String,\n required: true,\n },\n\n nextMonthLabel: {\n type: String,\n required: true,\n },\n\n prevYearLabel: {\n type: String,\n required: true,\n },\n\n nextYearLabel: {\n type: String,\n required: true,\n },\n\n changeToLabel: {\n type: String,\n required: true,\n },\n\n selectedDate: {\n type: Date,\n required: true,\n },\n});\nconst emits = defineEmits([\n /**\n * Will retrieve the calendar days of the given date\n *\n * @event calendar-days\n * @type {Array}\n */\n 'calendar-days',\n\n /**\n * Will focus first day in calendar\n *\n * @event focus-first-day\n */\n 'focus-first-day',\n\n /**\n * Will focus last day in calendar\n *\n * @event focus-last-day\n */\n 'focus-last-day',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n} = useMonthYearPicker(props, emits);\n\nonMounted(() => {\n focusMonthYearPicker();\n});\n\ndefineExpose({\n focusMonthYearPicker,\n goToNextMonth,\n goToPrevMonth,\n});\n</script>\n","import { computed, ref, watch, nextTick } from 'vue';\nimport { getWeekDayNames, calculateNextFocusDate, calculatePrevFocusDate } from '@/components/datepicker/utils.js';\nimport { MONTH_FORMAT, WEEK_START } from '@/components/datepicker/datepicker_constants.js';\nimport { format, getYear } from 'date-fns';\n\nexport function useCalendar (props, emits) {\n const selectedDay = ref(null);\n const focusDay = ref(0);\n const daysRef = ref([]);\n\n const weekDays = computed(() => {\n return getWeekDayNames(props.locale, WEEK_START);\n });\n\n watch(() => props.calendarDays, () => {\n focusDay.value = 0;\n daysRef.value = [];\n selectedDay.value = null;\n });\n\n function dayAriaLabel (day) {\n return `${props.selectDayLabel} ${day.text} ${format(day.value, MONTH_FORMAT)} ${getYear(day.value)}`;\n }\n\n function setDayRef (el, day) {\n if (!daysRef.value.some(day => day.el === el) && day.currentMonth) {\n daysRef.value.push({ el, day });\n }\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n focusDay.value -= 7;\n try {\n daysRef.value[focusDay.value].el.$el.focus();\n } catch (error) {\n const prevFocusDate = calculatePrevFocusDate(daysRef.value[focusDay.value + 7].day.value);\n emits('go-to-prev-month');\n\n nextTick(() => {\n daysRef.value[prevFocusDate - 1].el.$el.focus();\n focusDay.value += prevFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n focusDay.value += 7;\n try {\n daysRef.value[focusDay.value].el.$el.focus();\n } catch (error) {\n const nextFocusDate = calculateNextFocusDate(daysRef.value[focusDay.value - 7].day.value);\n emits('go-to-next-month');\n\n nextTick(() => {\n daysRef.value[nextFocusDate - 1].el.$el.focus();\n focusDay.value += nextFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (focusDay.value > 0) {\n focusDay.value -= 1;\n daysRef.value[focusDay.value].el.$el.focus();\n } else {\n // if we are on month first day, jump to last day of prev month\n emits('go-to-prev-month');\n focusLastDay();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusDay.value < daysRef.value.length - 1) {\n focusDay.value += 1;\n daysRef.value[focusDay.value].el.$el.focus();\n } else {\n // if we are on month last day, jump to first day of next month\n emits('go-to-next-month');\n\n focusFirstDay();\n }\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-month-year-picker');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function focusFirstDay () {\n focusDay.value = 0;\n\n nextTick(() => {\n daysRef.value[focusDay.value].el.$el.focus();\n });\n }\n\n function focusLastDay () {\n nextTick(() => {\n focusDay.value = daysRef.value.length - 1;\n daysRef.value[focusDay.value].el.$el.focus();\n });\n }\n\n function selectDay (day) {\n if (!day.currentMonth) { return; }\n\n // local selectedDay is updated when a day is selected\n selectedDay.value = day.text;\n emits('select-date', day.value);\n }\n\n return {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n };\n}\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <table\n class=\"d-datepicker__calendar\"\n aria-labelledby=\"calendar-heading\"\n >\n <thead>\n <tr>\n <th\n v-for=\"day in weekDays\"\n :key=\"day\"\n scope=\"col\"\n class=\"d-datepicker__cell d-datepicker__cell--header\"\n >\n <span\n class=\"d-datepicker__weekday\"\n :title=\"day\"\n :aria-label=\"day\"\n > {{ day }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(week, indexWeek) in calendarDays\"\n :key=\"indexWeek\"\n >\n <td\n v-for=\"(day, indexDays) in week.days\"\n :key=\"indexWeek + indexDays\"\n class=\"d-datepicker__cell\"\n role=\"listbox\"\n >\n <dt-button\n :ref=\"el => { if (el) setDayRef(el, day) }\"\n class=\"d-datepicker__day\"\n :circle=\"true\"\n size=\"sm\"\n importance=\"clear\"\n :disabled=\"!day.currentMonth\"\n :class=\"{\n 'd-datepicker__day--disabled': !day.currentMonth,\n 'd-datepicker__day--selected': selectedDay\n ? ((day.text === selectedDay) && day.currentMonth)\n : day.selected,\n }\"\n type=\"button\"\n :aria-selected=\"!!selectedDay ? ((day.text === selectedDay) && day.currentMonth) : day.selected\"\n :aria-label=\"dayAriaLabel(day)\"\n role=\"option\"\n @click=\"selectDay(day)\"\n @keydown=\"handleKeyDown($event)\"\n >\n {{ day.text }}\n </dt-button>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script setup>\nimport { useCalendar } from '@/components/datepicker/composables/useCalendar.js';\nimport { DtButton } from '@/components/button';\n\nconst props = defineProps({\n calendarDays: {\n type: Array,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selectDayLabel: {\n type: String,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event select-date\n * @type {Date}\n */\n 'select-date',\n\n /**\n * Will focus the month and year picker\n *\n * @event focus-month-year-picker\n */\n 'focus-month-year-picker',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n\n /**\n * Will go to the next month\n *\n * @event go-to-next-month\n */\n 'go-to-next-month',\n\n /**\n * Will go to the previous month\n *\n * @event go-to-prev-month\n */\n 'go-to-prev-month',\n]);\n\nconst {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n} = useCalendar(props, emits);\n\ndefineExpose({\n focusFirstDay,\n});\n</script>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-stack\n class=\"d-datepicker\"\n gap=\"400\"\n >\n <div class=\"d-datepicker__hd\">\n <month-year-picker\n ref=\"monthYearPicker\"\n :locale=\"locale\"\n :prev-month-label=\"prevMonthLabel\"\n :next-month-label=\"nextMonthLabel\"\n :prev-year-label=\"prevYearLabel\"\n :next-year-label=\"nextYearLabel\"\n :change-to-label=\"changeToLabel\"\n :selected-date=\"selectedDate\"\n @calendar-days=\"updateCalendarDays\"\n @focus-first-day=\"$refs.calendar.focusFirstDay()\"\n @focus-last-day=\"$refs.calendar.focusLastDay()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n />\n </div>\n <div class=\"d-datepicker__bd\">\n <calendar\n ref=\"calendar\"\n :locale=\"locale\"\n :calendar-days=\"calendarDays\"\n :select-day-label=\"selectDayLabel\"\n @select-date=\"$emit('selected-date', $event)\"\n @focus-month-year-picker=\"$refs.monthYearPicker.focusMonthYearPicker()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n @go-to-next-month=\"$refs.monthYearPicker.goToNextMonth()\"\n @go-to-prev-month=\"$refs.monthYearPicker.goToPrevMonth()\"\n />\n </div>\n </dt-stack>\n</template>\n\n<script setup>\nimport MonthYearPicker from './modules/month-year-picker.vue';\nimport Calendar from './modules/calendar.vue';\nimport { DtStack } from '@/components/stack';\n\nimport { ref } from 'vue';\n\ndefineProps({\n /**\n * Label for the previous month button\n *\n * @type {String}\n * @example 'Previous month'\n */\n prevMonthLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the next month button\n *\n * @type {String}\n * @example 'Next month'\n */\n nextMonthLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the previous year button\n *\n * @type {String}\n * @example 'Previous year'\n */\n prevYearLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the next year button\n *\n * @type {String}\n * @example 'Next year'\n */\n nextYearLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the select day button\n *\n * @type {String}\n * @example 'Select day'\n */\n selectDayLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the change to button\n *\n * @type {String}\n * @example 'Change to'\n */\n changeToLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Locale for the calendar\n *\n * @type {String}\n */\n locale: {\n type: String,\n default: 'en-US',\n },\n\n /**\n * Selected date\n *\n * @type {Date}\n */\n selectedDate: {\n type: Date,\n default: () => (new Date()),\n },\n});\n\ndefineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event selected-date\n * @type {Date}\n */\n 'selected-date',\n\n /**\n * Event fired when user presses the esc key\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst calendarDays = ref([]);\n\nfunction updateCalendarDays (days) {\n calendarDays.value = days;\n}\n</script>\n","export function formatLong (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }).format(date);\n}\n\nexport function formatMedium (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(date);\n}\n\nexport function formatShort (date, locale = 'default', showWeekday = true) {\n const options = showWeekday ? { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' } : { year: 'numeric', month: 'short', day: 'numeric' };\n return new Intl.DateTimeFormat(locale, options).format(date);\n}\n\nexport function formatNoYear (date, locale = 'default', abbreviated = false) {\n const monthFormat = abbreviated ? 'short' : 'long';\n return new Intl.DateTimeFormat(locale, { month: monthFormat, day: 'numeric' }).format(date);\n}\n\nexport function formatNumerical (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { year: '2-digit', month: '2-digit', day: '2-digit' }).format(date);\n}\n\nexport default {\n formatLong,\n formatMedium,\n formatShort,\n formatNoYear,\n formatNumerical,\n};\n"],"names":["WEEK_START","MONTH_FORMAT","INTL_MONTH_FORMAT","_parsedGetDate","value","getWeekDays","startDay","month","selectedDay","startDate","dates","i","next","addDays","isNext","getMonth","isDateEqual","date","dateToCompare","isEqual","getCalendarDays","year","weeks","firstDate","lastDate","weekStartsOn","firstDateInCalendar","startOfWeek","addDaysToWeek","days","day","nextDate","getWeekDayNames","locale","weekStart","beforeWeekStart","afterWeekStart","formatMonth","monthFormat","calculateNextFocusDate","currentDate","currentWeekday","getDay","nextMonthDate","addMonths","nextMonthStart","startOfMonth","nextMonthStartWeekday","dayDifference","focusDate","getDate","calculatePrevFocusDate","endOfMonth","subMonths","useMonthYearPicker","props","emits","selectMonth","ref","selectYear","getYear","highlightedDay","focusPicker","focusRefs","calendarDays","computed","formattedMonth","format","watch","highlightDay","setDayRef","el","focusMonthYearPicker","handleKeyDown","event","changeMonth","initialDate","set","newDate","changeYear","goToNextMonth","goToPrevMonth","__props","__emit","onMounted","__expose","useCalendar","focusDay","daysRef","weekDays","dayAriaLabel","prevFocusDate","nextTick","nextFocusDate","focusLastDay","focusFirstDay","selectDay","updateCalendarDays","formatLong","formatMedium","formatShort","showWeekday","options","formatNoYear","abbreviated","formatNumerical"],"mappings":"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"}
@@ -15,7 +15,6 @@ import "../chunks/link_constants-vIUB92L4.js";
15
15
  import "@dialpad/dialtone-icons/vue3";
16
16
  import "../chunks/icon_constants-OpYAAKwF.js";
17
17
  import "@dialpad/dialtone-icons/icons.json";
18
- import "./skeleton.js";
19
18
  const H = 0, ne = "MMMM", z = "long", B = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), re = (e, n, s) => {
20
19
  const t = B(JSON.parse(JSON.stringify(e))), a = [];
21
20
  for (let o = 0; o < 7; o++) {
@@ -543,7 +542,7 @@ const ye = {
543
542
  ])
544
543
  ]));
545
544
  }
546
- }, pe = { class: "d-datepicker__hd" }, be = { class: "d-datepicker__bd" }, ze = {
545
+ }, pe = { class: "d-datepicker__hd" }, be = { class: "d-datepicker__bd" }, Re = {
547
546
  __name: "datepicker",
548
547
  props: {
549
548
  /**
@@ -684,29 +683,29 @@ const ye = {
684
683
  }));
685
684
  }
686
685
  };
687
- function Ie(e, n = "default") {
686
+ function ze(e, n = "default") {
688
687
  return new Intl.DateTimeFormat(n, { weekday: "long", year: "numeric", month: "long", day: "numeric" }).format(e);
689
688
  }
690
- function Ke(e, n = "default") {
689
+ function Ie(e, n = "default") {
691
690
  return new Intl.DateTimeFormat(n, { year: "numeric", month: "long", day: "numeric" }).format(e);
692
691
  }
693
- function We(e, n = "default", s = !0) {
692
+ function Ke(e, n = "default", s = !0) {
694
693
  const t = s ? { weekday: "short", year: "numeric", month: "short", day: "numeric" } : { year: "numeric", month: "short", day: "numeric" };
695
694
  return new Intl.DateTimeFormat(n, t).format(e);
696
695
  }
697
- function Be(e, n = "default", s = !1) {
696
+ function We(e, n = "default", s = !1) {
698
697
  const t = s ? "short" : "long";
699
698
  return new Intl.DateTimeFormat(n, { month: t, day: "numeric" }).format(e);
700
699
  }
701
- function Ee(e, n = "default") {
700
+ function Be(e, n = "default") {
702
701
  return new Intl.DateTimeFormat(n, { year: "2-digit", month: "2-digit", day: "2-digit" }).format(e);
703
702
  }
704
703
  export {
705
- ze as DtDatepicker,
706
- Ie as formatLong,
707
- Ke as formatMedium,
708
- Be as formatNoYear,
709
- Ee as formatNumerical,
710
- We as formatShort
704
+ Re as DtDatepicker,
705
+ ze as formatLong,
706
+ Ie as formatMedium,
707
+ We as formatNoYear,
708
+ Be as formatNumerical,
709
+ Ke as formatShort
711
710
  };
712
711
  //# sourceMappingURL=datepicker.js.map