@dialpad/dialtone-vue 3.208.0 → 3.210.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/dist/common/mixins/keyboard-list-navigation.cjs +1 -1
  2. package/dist/common/mixins/keyboard-list-navigation.cjs.map +1 -1
  3. package/dist/common/mixins/keyboard-list-navigation.js +7 -7
  4. package/dist/common/mixins/keyboard-list-navigation.js.map +1 -1
  5. package/dist/component-documentation.json +1 -1
  6. package/dist/dialtone-vue.cjs +1 -1
  7. package/dist/dialtone-vue.js +422 -386
  8. package/dist/dialtone-vue.js.map +1 -1
  9. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  10. package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  11. package/dist/lib/attachment-carousel/attachment-carousel.js +64 -117
  12. package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  13. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  14. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  15. package/dist/lib/avatar/avatar-constants.js +169 -43
  16. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  17. package/dist/lib/avatar/avatar.cjs +1 -1
  18. package/dist/lib/avatar/avatar.cjs.map +1 -1
  19. package/dist/lib/avatar/avatar.js +185 -100
  20. package/dist/lib/avatar/avatar.js.map +1 -1
  21. package/dist/lib/avatar/index.cjs +1 -1
  22. package/dist/lib/avatar/index.js +16 -10
  23. package/dist/lib/badge/badge.cjs +1 -1
  24. package/dist/lib/badge/badge.cjs.map +1 -1
  25. package/dist/lib/badge/badge.js +47 -35
  26. package/dist/lib/badge/badge.js.map +1 -1
  27. package/dist/lib/button/button-constants.cjs +1 -1
  28. package/dist/lib/button/button-constants.cjs.map +1 -1
  29. package/dist/lib/button/button-constants.js +23 -19
  30. package/dist/lib/button/button-constants.js.map +1 -1
  31. package/dist/lib/button/button.cjs +1 -1
  32. package/dist/lib/button/button.cjs.map +1 -1
  33. package/dist/lib/button/button.js +138 -60
  34. package/dist/lib/button/button.js.map +1 -1
  35. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  36. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  37. package/dist/lib/callbar-button/callbar-button.js +8 -9
  38. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  39. package/dist/lib/callbox/callbox.cjs +1 -1
  40. package/dist/lib/callbox/callbox.cjs.map +1 -1
  41. package/dist/lib/callbox/callbox.js +47 -47
  42. package/dist/lib/callbox/callbox.js.map +1 -1
  43. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  44. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  45. package/dist/lib/combobox-multi-select/combobox-multi-select.js +31 -31
  46. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  47. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  48. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  49. package/dist/lib/contact-centers-row/contact-centers-row.js +33 -33
  50. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  51. package/dist/lib/contact-info/contact-info.cjs +1 -1
  52. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  53. package/dist/lib/contact-info/contact-info.js +56 -56
  54. package/dist/lib/contact-info/contact-info.js.map +1 -1
  55. package/dist/lib/contact-row/contact-row.cjs +1 -1
  56. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  57. package/dist/lib/contact-row/contact-row.js +1 -1
  58. package/dist/lib/contact-row/contact-row.js.map +1 -1
  59. package/dist/lib/datepicker/datepicker.cjs +1 -1
  60. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  61. package/dist/lib/datepicker/datepicker.js +11 -11
  62. package/dist/lib/datepicker/datepicker.js.map +1 -1
  63. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  64. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  65. package/dist/lib/editor/EditorToolbarButton.js +14 -13
  66. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  67. package/dist/lib/editor/editor.cjs +1 -1
  68. package/dist/lib/editor/editor.cjs.map +1 -1
  69. package/dist/lib/editor/editor.js +209 -191
  70. package/dist/lib/editor/editor.js.map +1 -1
  71. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  72. package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  73. package/dist/lib/emoji-picker/emoji-picker.js +2 -2
  74. package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
  75. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  76. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  77. package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
  78. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  79. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  80. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  81. package/dist/lib/feed-item-row/feed-item-row.js +11 -11
  82. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  83. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  84. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  85. package/dist/lib/filter-pill/filter-pill.js +346 -0
  86. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  87. package/dist/lib/filter-pill/index.cjs +2 -0
  88. package/dist/lib/filter-pill/index.cjs.map +1 -0
  89. package/dist/lib/filter-pill/index.js +5 -0
  90. package/dist/lib/filter-pill/index.js.map +1 -0
  91. package/dist/lib/general-row/general-row.cjs +1 -1
  92. package/dist/lib/general-row/general-row.cjs.map +1 -1
  93. package/dist/lib/general-row/general-row.js +153 -99
  94. package/dist/lib/general-row/general-row.js.map +1 -1
  95. package/dist/lib/group-row/group-row.cjs +1 -1
  96. package/dist/lib/group-row/group-row.cjs.map +1 -1
  97. package/dist/lib/group-row/group-row.js +1 -1
  98. package/dist/lib/group-row/group-row.js.map +1 -1
  99. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  100. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  101. package/dist/lib/grouped-chip/grouped-chip.js +31 -31
  102. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  103. package/dist/lib/input/input.cjs +1 -1
  104. package/dist/lib/input/input.cjs.map +1 -1
  105. package/dist/lib/input/input.js +53 -42
  106. package/dist/lib/input/input.js.map +1 -1
  107. package/dist/lib/item-layout/item-layout.cjs +3 -3
  108. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  109. package/dist/lib/item-layout/item-layout.js +74 -39
  110. package/dist/lib/item-layout/item-layout.js.map +1 -1
  111. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  112. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  113. package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
  114. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  115. package/dist/lib/link/link.cjs +1 -1
  116. package/dist/lib/link/link.cjs.map +1 -1
  117. package/dist/lib/link/link.js +21 -12
  118. package/dist/lib/link/link.js.map +1 -1
  119. package/dist/lib/list-item/list-item.cjs +1 -1
  120. package/dist/lib/list-item/list-item.cjs.map +1 -1
  121. package/dist/lib/list-item/list-item.js +25 -15
  122. package/dist/lib/list-item/list-item.js.map +1 -1
  123. package/dist/lib/loader/loader.cjs +13 -1
  124. package/dist/lib/loader/loader.cjs.map +1 -1
  125. package/dist/lib/loader/loader.js +31 -20
  126. package/dist/lib/loader/loader.js.map +1 -1
  127. package/dist/lib/message-input/message-input.cjs +1 -1
  128. package/dist/lib/message-input/message-input.cjs.map +1 -1
  129. package/dist/lib/message-input/message-input.js +44 -43
  130. package/dist/lib/message-input/message-input.js.map +1 -1
  131. package/dist/lib/mode-island/index.cjs +2 -0
  132. package/dist/lib/mode-island/index.cjs.map +1 -0
  133. package/dist/lib/mode-island/index.js +7 -0
  134. package/dist/lib/mode-island/index.js.map +1 -0
  135. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  136. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  137. package/dist/lib/mode-island/mode-island-constants.js +12 -0
  138. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  139. package/dist/lib/mode-island/mode-island.cjs +2 -0
  140. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  141. package/dist/lib/mode-island/mode-island.js +130 -0
  142. package/dist/lib/mode-island/mode-island.js.map +1 -0
  143. package/dist/lib/mode-island/utils.cjs +2 -0
  144. package/dist/lib/mode-island/utils.cjs.map +1 -0
  145. package/dist/lib/mode-island/utils.js +32 -0
  146. package/dist/lib/mode-island/utils.js.map +1 -0
  147. package/dist/lib/mode-island/validators.cjs +2 -0
  148. package/dist/lib/mode-island/validators.cjs.map +1 -0
  149. package/dist/lib/mode-island/validators.js +12 -0
  150. package/dist/lib/mode-island/validators.js.map +1 -0
  151. package/dist/lib/pagination/pagination.cjs +1 -1
  152. package/dist/lib/pagination/pagination.cjs.map +1 -1
  153. package/dist/lib/pagination/pagination.js +15 -14
  154. package/dist/lib/pagination/pagination.js.map +1 -1
  155. package/dist/lib/popover/popover.cjs +1 -1
  156. package/dist/lib/popover/popover.cjs.map +1 -1
  157. package/dist/lib/popover/popover.js +1 -1
  158. package/dist/lib/popover/popover.js.map +1 -1
  159. package/dist/lib/progress-circle/index.cjs +2 -0
  160. package/dist/lib/progress-circle/index.cjs.map +1 -0
  161. package/dist/lib/progress-circle/index.js +10 -0
  162. package/dist/lib/progress-circle/index.js.map +1 -0
  163. package/dist/lib/progress-circle/progress-circle-constants.cjs +2 -0
  164. package/dist/lib/progress-circle/progress-circle-constants.cjs.map +1 -0
  165. package/dist/lib/progress-circle/progress-circle-constants.js +25 -0
  166. package/dist/lib/progress-circle/progress-circle-constants.js.map +1 -0
  167. package/dist/lib/progress-circle/progress-circle.cjs +2 -0
  168. package/dist/lib/progress-circle/progress-circle.cjs.map +1 -0
  169. package/dist/lib/progress-circle/progress-circle.js +136 -0
  170. package/dist/lib/progress-circle/progress-circle.js.map +1 -0
  171. package/dist/lib/rich-text-editor/rich-text-editor.cjs +3 -3
  172. package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  173. package/dist/lib/rich-text-editor/rich-text-editor.js +161 -131
  174. package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  175. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  176. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  177. package/dist/lib/root-layout/root-layout-constants.js +4 -2
  178. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  179. package/dist/lib/root-layout/root-layout.cjs +1 -1
  180. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  181. package/dist/lib/root-layout/root-layout.js +9 -10
  182. package/dist/lib/root-layout/root-layout.js.map +1 -1
  183. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  184. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  185. package/dist/lib/settings-menu-button/settings-menu-button.js +14 -15
  186. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  187. package/dist/lib/split-button/split-button-alpha.cjs +1 -1
  188. package/dist/lib/split-button/split-button-alpha.cjs.map +1 -1
  189. package/dist/lib/split-button/split-button-alpha.js +51 -28
  190. package/dist/lib/split-button/split-button-alpha.js.map +1 -1
  191. package/dist/lib/split-button/split-button.cjs +1 -1
  192. package/dist/lib/split-button/split-button.cjs.map +1 -1
  193. package/dist/lib/split-button/split-button.js +235 -89
  194. package/dist/lib/split-button/split-button.js.map +1 -1
  195. package/dist/lib/text/index.cjs +2 -0
  196. package/dist/lib/text/index.cjs.map +1 -0
  197. package/dist/lib/text/index.js +20 -0
  198. package/dist/lib/text/index.js.map +1 -0
  199. package/dist/lib/text/text-constants.cjs +2 -0
  200. package/dist/lib/text/text-constants.cjs.map +1 -0
  201. package/dist/lib/text/text-constants.js +69 -0
  202. package/dist/lib/text/text-constants.js.map +1 -0
  203. package/dist/lib/text/text-tone-tokens.cjs +2 -0
  204. package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
  205. package/dist/lib/text/text-tone-tokens.js +33 -0
  206. package/dist/lib/text/text-tone-tokens.js.map +1 -0
  207. package/dist/lib/text/text.cjs +2 -0
  208. package/dist/lib/text/text.cjs.map +1 -0
  209. package/dist/lib/text/text.js +203 -0
  210. package/dist/lib/text/text.js.map +1 -0
  211. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  212. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  213. package/dist/lib/top-banner-info/top-banner-info.js +16 -16
  214. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  215. package/dist/localization/de-DE.cjs +4 -0
  216. package/dist/localization/de-DE.cjs.map +1 -1
  217. package/dist/localization/de-DE.js +4 -0
  218. package/dist/localization/de-DE.js.map +1 -1
  219. package/dist/localization/en-US.cjs +2 -0
  220. package/dist/localization/en-US.cjs.map +1 -1
  221. package/dist/localization/en-US.js +2 -0
  222. package/dist/localization/en-US.js.map +1 -1
  223. package/dist/localization/es-LA.cjs +4 -0
  224. package/dist/localization/es-LA.cjs.map +1 -1
  225. package/dist/localization/es-LA.js +4 -0
  226. package/dist/localization/es-LA.js.map +1 -1
  227. package/dist/localization/fr-FR.cjs +4 -0
  228. package/dist/localization/fr-FR.cjs.map +1 -1
  229. package/dist/localization/fr-FR.js +4 -0
  230. package/dist/localization/fr-FR.js.map +1 -1
  231. package/dist/localization/it-IT.cjs +4 -0
  232. package/dist/localization/it-IT.cjs.map +1 -1
  233. package/dist/localization/it-IT.js +4 -0
  234. package/dist/localization/it-IT.js.map +1 -1
  235. package/dist/localization/nl-NL.cjs +4 -0
  236. package/dist/localization/nl-NL.cjs.map +1 -1
  237. package/dist/localization/nl-NL.js +4 -0
  238. package/dist/localization/nl-NL.js.map +1 -1
  239. package/dist/localization/pt-BR.cjs +4 -0
  240. package/dist/localization/pt-BR.cjs.map +1 -1
  241. package/dist/localization/pt-BR.js +4 -0
  242. package/dist/localization/pt-BR.js.map +1 -1
  243. package/dist/localization/ru-RU.cjs +4 -0
  244. package/dist/localization/ru-RU.cjs.map +1 -1
  245. package/dist/localization/ru-RU.js +4 -0
  246. package/dist/localization/ru-RU.js.map +1 -1
  247. package/dist/localization/zh-CN.cjs +4 -0
  248. package/dist/localization/zh-CN.cjs.map +1 -1
  249. package/dist/localization/zh-CN.js +4 -0
  250. package/dist/localization/zh-CN.js.map +1 -1
  251. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  252. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  253. package/dist/style.css +1 -1
  254. package/dist/types/common/mixins/keyboard_list_navigation.d.ts.map +1 -1
  255. package/dist/types/common/sr_only_close_button.vue.d.ts +20 -2
  256. package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
  257. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  258. package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
  259. package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
  260. package/dist/types/components/avatar/index.d.ts +1 -1
  261. package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
  262. package/dist/types/components/banner/banner.vue.d.ts +40 -4
  263. package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
  264. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
  265. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  266. package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
  267. package/dist/types/components/button/button.vue.d.ts +20 -2
  268. package/dist/types/components/button/button.vue.d.ts.map +1 -1
  269. package/dist/types/components/button/button_constants.d.ts +4 -0
  270. package/dist/types/components/button/button_constants.d.ts.map +1 -1
  271. package/dist/types/components/chip/chip.vue.d.ts +20 -2
  272. package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
  273. package/dist/types/components/collapsible/collapsible.vue.d.ts +20 -2
  274. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  275. package/dist/types/components/combobox/combobox.vue.d.ts +79 -13
  276. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  277. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +39 -6
  278. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  279. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +39 -6
  280. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  281. package/dist/types/components/dropdown/dropdown.vue.d.ts +40 -4
  282. package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  283. package/dist/types/components/filter_pill/filter_pill.vue.d.ts +2016 -0
  284. package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  285. package/dist/types/components/filter_pill/index.d.ts +2 -0
  286. package/dist/types/components/filter_pill/index.d.ts.map +1 -0
  287. package/dist/types/components/hovercard/hovercard.vue.d.ts +80 -8
  288. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  289. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +40 -4
  290. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  291. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  292. package/dist/types/components/item_layout/item_layout.vue.d.ts +36 -5
  293. package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
  294. package/dist/types/components/link/link.vue.d.ts +9 -0
  295. package/dist/types/components/list_item/list_item.vue.d.ts +39 -6
  296. package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
  297. package/dist/types/components/loader/loader.vue.d.ts +1 -32
  298. package/dist/types/components/loader/loader.vue.d.ts.map +1 -1
  299. package/dist/types/components/modal/modal.vue.d.ts +40 -4
  300. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  301. package/dist/types/components/mode_island/index.d.ts +3 -0
  302. package/dist/types/components/mode_island/index.d.ts.map +1 -0
  303. package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
  304. package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
  305. package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
  306. package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
  307. package/dist/types/components/mode_island/utils.d.ts +12 -0
  308. package/dist/types/components/mode_island/utils.d.ts.map +1 -0
  309. package/dist/types/components/mode_island/validators.d.ts +6 -0
  310. package/dist/types/components/mode_island/validators.d.ts.map +1 -0
  311. package/dist/types/components/notice/notice.vue.d.ts +40 -4
  312. package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
  313. package/dist/types/components/notice/notice_action.vue.d.ts +40 -4
  314. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  315. package/dist/types/components/pagination/pagination.vue.d.ts +20 -2
  316. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  317. package/dist/types/components/popover/popover.vue.d.ts +40 -4
  318. package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
  319. package/dist/types/components/popover/popover_header_footer.vue.d.ts +20 -2
  320. package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  321. package/dist/types/components/progress_circle/index.d.ts +3 -0
  322. package/dist/types/components/progress_circle/index.d.ts.map +1 -0
  323. package/dist/types/components/progress_circle/progress_circle.vue.d.ts +70 -0
  324. package/dist/types/components/progress_circle/progress_circle.vue.d.ts.map +1 -0
  325. package/dist/types/components/progress_circle/progress_circle_constants.d.ts +23 -0
  326. package/dist/types/components/progress_circle/progress_circle_constants.d.ts.map +1 -0
  327. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
  328. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  329. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
  330. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +71 -25
  331. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +39 -6
  332. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  333. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +61 -6
  334. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  335. package/dist/types/components/rich_text_editor/extensions/variable/variable.d.ts.map +1 -1
  336. package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
  337. package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
  338. package/dist/types/components/split_button/split_button-alpha.vue.d.ts +21 -3
  339. package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +1 -1
  340. package/dist/types/components/split_button/split_button-omega.vue.d.ts +20 -2
  341. package/dist/types/components/split_button/split_button-omega.vue.d.ts.map +1 -1
  342. package/dist/types/components/split_button/split_button.vue.d.ts +214 -28
  343. package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
  344. package/dist/types/components/tab/tab.vue.d.ts +20 -2
  345. package/dist/types/components/text/index.d.ts +3 -0
  346. package/dist/types/components/text/index.d.ts.map +1 -0
  347. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
  348. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
  349. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
  350. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
  351. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
  352. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
  353. package/dist/types/components/text/text.vue.d.ts +141 -0
  354. package/dist/types/components/text/text.vue.d.ts.map +1 -0
  355. package/dist/types/components/text/text_constants.d.ts +73 -0
  356. package/dist/types/components/text/text_constants.d.ts.map +1 -0
  357. package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
  358. package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
  359. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +40 -4
  360. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  361. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +40 -4
  362. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  363. package/dist/types/components/toast/toast.vue.d.ts +160 -16
  364. package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
  365. package/dist/types/index.d.ts +4 -0
  366. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +20 -2
  367. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  368. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +80 -8
  369. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  370. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +80 -8
  371. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  372. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +60 -6
  373. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  374. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +20 -2
  375. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  376. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +198 -30
  377. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  378. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +124 -12
  379. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  380. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +104 -10
  381. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  382. package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +20 -2
  383. package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts.map +1 -1
  384. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +60 -6
  385. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  386. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +60 -6
  387. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  388. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +20 -2
  389. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  390. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +56 -7
  391. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  392. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +110 -31
  393. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  394. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +56 -7
  395. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  396. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +20 -2
  397. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  398. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +80 -8
  399. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  400. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +20 -2
  401. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  402. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +20 -2
  403. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  404. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +107 -30
  405. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  406. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
  407. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  408. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +20 -2
  409. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  410. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +449 -28
  411. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  412. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +378 -3
  413. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  414. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +378 -3
  415. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  416. package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  417. package/package.json +7 -6
  418. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts +0 -30
  419. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./dom.cjs"),E=require("../utils/index.cjs"),N="listElementKey is required or the referenced element doesn't exist. Received listElement: ",v=({listItemRole:o="option",indexKey:s="highlightIndex",idKey:n="highlightId",listElementKey:I="listRef",activeItemKey:c="",openMethod:l=null,afterHighlightMethod:r=null,beginningOfListMethod:m=null,endOfListMethod:u=null,scrollToOnHighlight:g=!0,focusOnKeyboardNavigation:f=!1}={})=>({mixins:[a.default],data(){return{[s]:-1,[n]:"",scrollToOnHighlight:g,focusOnKeyboardNavigation:f}},provide(){return{highlightId:()=>this[n]}},methods:{_getListElement(){var t;return E.returnFirstEl((t=this[I]())==null?void 0:t.$el)||this[I]()},_itemsLength(){const t=this._getListItemNodes();return t===null?0:t.length},_getListItemNodes(){const t=this._getListElement();return t?Array.from(t.querySelectorAll(`[role="${o}"], #sr-only-close-button`)):(console.error(N,t),null)},onUpKey(){l&&this[l](!0),this[s]>0?this.setHighlightIndex(this[s]-1):m&&this[m](),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onDownKey(){l&&this[l](!0),this[s]<this._itemsLength()-1?this.setHighlightIndex(this[s]+1):u&&this[u](),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onHomeKey(){this.jumpToBeginning(),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onEndKey(){this.jumpToEnd(),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onNavigationKey(t){const e=this._getListItemNodes(),i=e.filter(h=>h.textContent.trim().toLowerCase().startsWith(t.toLowerCase()));if(i.length<=0)return;const d=i.findIndex(h=>this[s]===e.indexOf(h)),_=e.indexOf(d<i.length-1?i[d+1]:i[0]);this.setHighlightIndex(_),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},isValidLetter(t){return t.length>1?!1:t>="a"&&t<="z"||t>="A"&&t<="Z"},jumpToBeginning(){this.setHighlightIndex(0)},jumpToEnd(){this.setHighlightIndex(this._itemsLength()-1)},setHighlightIndex(t){this[s]=t,this[n]=this._getItemId(t),this._itemsLength()&&r&&this[r](t)},setHighlightId(t){this[n]=t,this[s]=this._getItemIndex(t),this._itemsLength()&&r&&this[r](this._getItemIndex(t))},_getItemIndex(t){const e=this._getListElement();return e?Array.from(e.querySelectorAll(`[role="${o}"], #sr-only-close-button`)).indexOf(e.querySelector(`#${t}`)):void 0},_getItemId(t){var i;const e=this._getListElement();if(e)return(i=e.querySelectorAll(`[role="${o}"], #sr-only-close-button`)[t])==null?void 0:i.id},scrollActiveItemIntoViewIfNeeded(){if(!this.scrollToOnHighlight)return;const t=this[c];if(t){const e=this._getListElement();this.scrollElementIntoViewIfNeeded(t,null,null,e)}},focusActiveItemIfNeeded(){if(!this.focusOnKeyboardNavigation)return;const t=this[c];t&&t.focus()}}});exports.default=v;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./dom.cjs"),E=require("../utils/index.cjs"),N="listElementKey is required or the referenced element doesn't exist. Received listElement: ",v=({listItemRole:o="option",indexKey:s="highlightIndex",idKey:n="highlightId",listElementKey:I="listRef",activeItemKey:c="",openMethod:l=null,afterHighlightMethod:r=null,beginningOfListMethod:u=null,endOfListMethod:m=null,scrollToOnHighlight:g=!0,focusOnKeyboardNavigation:f=!1}={})=>({mixins:[a.default],data(){return{[s]:-1,[n]:"",scrollToOnHighlight:g,focusOnKeyboardNavigation:f}},provide(){return{highlightId:()=>this[n]}},methods:{_getListElement(){var t;return E.returnFirstEl((t=this[I]())==null?void 0:t.$el)||this[I]()},_itemsLength(){const t=this._getListItemNodes();return t===null?0:t.length},_getListItemNodes(){const t=this._getListElement();return t?Array.from(t.querySelectorAll(`[role="${o}"], #sr-only-close-button`)):(console.error(N,t),null)},onUpKey(){l&&this[l](!0),this[s]>0?this.setHighlightIndex(this[s]-1):u&&this[u](),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onDownKey(){l&&this[l](!0),this[s]<this._itemsLength()-1?this.setHighlightIndex(this[s]+1):m&&this[m](),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onHomeKey(){this.jumpToBeginning(),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onEndKey(){this.jumpToEnd(),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},onNavigationKey(t){const e=this._getListItemNodes(),i=e.filter(h=>h.textContent.trim().toLowerCase().startsWith(t.toLowerCase()));if(i.length<=0)return;const d=i.findIndex(h=>this[s]===e.indexOf(h)),_=e.indexOf(d<i.length-1?i[d+1]:i[0]);this.setHighlightIndex(_),this.scrollActiveItemIntoViewIfNeeded(),this.focusActiveItemIfNeeded()},isValidLetter(t){return t.length>1?!1:t>="a"&&t<="z"||t>="A"&&t<="Z"},jumpToBeginning(){this.setHighlightIndex(0)},jumpToEnd(){this.setHighlightIndex(this._itemsLength()-1)},setHighlightIndex(t){this[s]=t,this[n]=this._getItemId(t),this._itemsLength()&&r&&this[r](t)},setHighlightId(t){t&&(this[n]=t,this[s]=this._getItemIndex(t),this._itemsLength()&&r&&this[r](this._getItemIndex(t)))},_getItemIndex(t){const e=this._getListElement();return e?Array.from(e.querySelectorAll(`[role="${o}"], #sr-only-close-button`)).indexOf(e.querySelector(`#${t}`)):void 0},_getItemId(t){var i;const e=this._getListElement();if(e)return(i=e.querySelectorAll(`[role="${o}"], #sr-only-close-button`)[t])==null?void 0:i.id},scrollActiveItemIntoViewIfNeeded(){if(!this.scrollToOnHighlight)return;const t=this[c];if(t){const e=this._getListElement();this.scrollElementIntoViewIfNeeded(t,null,null,e)}},focusActiveItemIfNeeded(){if(!this.focusOnKeyboardNavigation)return;const t=this[c];t&&t.focus()}}});exports.default=v;
2
2
  //# sourceMappingURL=keyboard-list-navigation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-list-navigation.cjs","sources":["../../../common/mixins/keyboard_list_navigation.js"],"sourcesContent":["import Dom from './dom';\nimport { returnFirstEl } from '@/common/utils';\n\nconst ERROR_INVALID_LIST_ELEMENT = (\n 'listElementKey is required or the referenced ' +\n 'element doesn\\'t exist. Received listElement: '\n);\n\n/**\n * Usage: `mixins: [keyboardNavigationMixin(options)]`\n *\n * This mixin provides some common data and methods to navigate a list of items\n * (such as a dropdown or select menu) by keyboard.\n *\n * To be effective, you must bind the onUpKey and onDownKey events, usually to\n * the root element of the component.\n *\n * @param listItemRole\n * @param indexKey\n * @param idKey\n * @param listElementKey\n * @param activeItemKey\n * @param openMethod\n * @param afterHighlightMethod\n * @param beginningOfListMethod\n * @param endOfListMethod\n * @param scrollToOnHighlight\n * @param focusOnKeyboardNavigation\n * @displayName Keyboard Navigation Mixin\n */\nexport default ({\n // Role of the list items in the component. This is used to identify the list items\n // so you must update this if the role of your list items is anything other than 'option'\n listItemRole = 'option',\n // Key of the data prop that will be added to the component.\n indexKey = 'highlightIndex',\n idKey = 'highlightId',\n // Key of the method that references the list element.\n listElementKey = 'listRef',\n // Optional, Key of the computed prop that references the currently active item element.\n activeItemKey = '',\n // Optional, name of the method that toggles the list visibility. Used for\n // opening the list when up or down is pressed.\n openMethod = null,\n // Optional, method to call when the highlightIndex is changed.\n afterHighlightMethod = null,\n // Optional, method to call when the highlightIndex goes past the beginning of the list.\n beginningOfListMethod = null,\n // Optional, method to call when the highlightIndex goes past the end of the list.\n endOfListMethod = null,\n // Scroll the active element into view when highlighted by a keyboard event.\n scrollToOnHighlight = true,\n // Focus the active element on keyboard navigation.\n focusOnKeyboardNavigation = false,\n} = {}) => ({\n mixins: [Dom],\n\n data () {\n return {\n [indexKey]: -1,\n [idKey]: '',\n scrollToOnHighlight,\n focusOnKeyboardNavigation,\n };\n },\n\n provide () {\n return {\n highlightId: () => this[idKey],\n };\n },\n\n methods: {\n // Returns the list element\n // this[listElement]() can return a Vue component, in which case we need to target\n // the $el property, or it can simply be an html element.\n _getListElement () {\n return returnFirstEl(this[listElementKey]()?.$el) || this[listElementKey]();\n },\n\n // Gets the length of all the items in the list, uses the listItemRole param to determine\n // whether an element is a list item.\n _itemsLength () {\n const listItems = this._getListItemNodes();\n\n if (listItems === null) {\n return 0;\n }\n\n return listItems.length;\n },\n\n // Gets all the list item nodes within the list element\n _getListItemNodes () {\n const listElement = this._getListElement();\n\n if (!listElement) {\n console.error(ERROR_INVALID_LIST_ELEMENT, listElement);\n return null;\n }\n\n return Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n },\n\n onUpKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] > 0) {\n this.setHighlightIndex(this[indexKey] - 1);\n } else if (beginningOfListMethod) {\n this[beginningOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onDownKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] < this._itemsLength() - 1) {\n this.setHighlightIndex(this[indexKey] + 1);\n } else if (endOfListMethod) {\n this[endOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onHomeKey () {\n this.jumpToBeginning();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onEndKey () {\n this.jumpToEnd();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onNavigationKey (key) {\n const listItems = this._getListItemNodes();\n\n const matchingItems = listItems.filter(item => {\n const content = item.textContent.trim().toLowerCase();\n return content.startsWith(key.toLowerCase());\n });\n\n if (matchingItems.length <= 0) {\n return;\n }\n\n const highlightedMatchingItemIndex = matchingItems.findIndex(item => {\n return this[indexKey] === listItems.indexOf(item);\n });\n\n const nextHighlightedItemIndex = listItems.indexOf(\n highlightedMatchingItemIndex < matchingItems.length - 1\n ? matchingItems[highlightedMatchingItemIndex + 1]\n : matchingItems[0],\n );\n\n this.setHighlightIndex(nextHighlightedItemIndex);\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n isValidLetter (key) {\n if (key.length > 1) {\n return false;\n }\n\n return (key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z');\n },\n\n jumpToBeginning () {\n this.setHighlightIndex(0);\n },\n\n jumpToEnd () {\n this.setHighlightIndex(this._itemsLength() - 1);\n },\n\n setHighlightIndex (num) {\n this[indexKey] = num;\n this[idKey] = this._getItemId(num);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](num);\n }\n },\n\n setHighlightId (id) {\n this[idKey] = id;\n this[indexKey] = this._getItemIndex(id);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](this._getItemIndex(id));\n }\n },\n\n _getItemIndex (id) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n const listItems = Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n return listItems.indexOf(listElement.querySelector(`#${id}`));\n },\n\n _getItemId (index) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n return listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`)[index]?.id;\n },\n\n scrollActiveItemIntoViewIfNeeded () {\n if (!this.scrollToOnHighlight) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n // When listElementKey is not passed,\n // scrollElementIntoViewIfNeeded will default to the immediate wrapper of the item.\n const listElement = this._getListElement();\n this.scrollElementIntoViewIfNeeded(activeItemEl, null, null, listElement);\n }\n },\n\n focusActiveItemIfNeeded () {\n if (!this.focusOnKeyboardNavigation) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n activeItemEl.focus();\n }\n },\n },\n});\n"],"names":["ERROR_INVALID_LIST_ELEMENT","KeyboardNavigation","listItemRole","indexKey","idKey","listElementKey","activeItemKey","openMethod","afterHighlightMethod","beginningOfListMethod","endOfListMethod","scrollToOnHighlight","focusOnKeyboardNavigation","Dom","returnFirstEl","_a","listItems","listElement","key","matchingItems","item","highlightedMatchingItemIndex","nextHighlightedItemIndex","num","id","index","activeItemEl"],"mappings":"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"}
1
+ {"version":3,"file":"keyboard-list-navigation.cjs","sources":["../../../common/mixins/keyboard_list_navigation.js"],"sourcesContent":["import Dom from './dom';\nimport { returnFirstEl } from '@/common/utils';\n\nconst ERROR_INVALID_LIST_ELEMENT = (\n 'listElementKey is required or the referenced ' +\n 'element doesn\\'t exist. Received listElement: '\n);\n\n/**\n * Usage: `mixins: [keyboardNavigationMixin(options)]`\n *\n * This mixin provides some common data and methods to navigate a list of items\n * (such as a dropdown or select menu) by keyboard.\n *\n * To be effective, you must bind the onUpKey and onDownKey events, usually to\n * the root element of the component.\n *\n * @param listItemRole\n * @param indexKey\n * @param idKey\n * @param listElementKey\n * @param activeItemKey\n * @param openMethod\n * @param afterHighlightMethod\n * @param beginningOfListMethod\n * @param endOfListMethod\n * @param scrollToOnHighlight\n * @param focusOnKeyboardNavigation\n * @displayName Keyboard Navigation Mixin\n */\nexport default ({\n // Role of the list items in the component. This is used to identify the list items\n // so you must update this if the role of your list items is anything other than 'option'\n listItemRole = 'option',\n // Key of the data prop that will be added to the component.\n indexKey = 'highlightIndex',\n idKey = 'highlightId',\n // Key of the method that references the list element.\n listElementKey = 'listRef',\n // Optional, Key of the computed prop that references the currently active item element.\n activeItemKey = '',\n // Optional, name of the method that toggles the list visibility. Used for\n // opening the list when up or down is pressed.\n openMethod = null,\n // Optional, method to call when the highlightIndex is changed.\n afterHighlightMethod = null,\n // Optional, method to call when the highlightIndex goes past the beginning of the list.\n beginningOfListMethod = null,\n // Optional, method to call when the highlightIndex goes past the end of the list.\n endOfListMethod = null,\n // Scroll the active element into view when highlighted by a keyboard event.\n scrollToOnHighlight = true,\n // Focus the active element on keyboard navigation.\n focusOnKeyboardNavigation = false,\n} = {}) => ({\n mixins: [Dom],\n\n data () {\n return {\n [indexKey]: -1,\n [idKey]: '',\n scrollToOnHighlight,\n focusOnKeyboardNavigation,\n };\n },\n\n provide () {\n return {\n highlightId: () => this[idKey],\n };\n },\n\n methods: {\n // Returns the list element\n // this[listElement]() can return a Vue component, in which case we need to target\n // the $el property, or it can simply be an html element.\n _getListElement () {\n return returnFirstEl(this[listElementKey]()?.$el) || this[listElementKey]();\n },\n\n // Gets the length of all the items in the list, uses the listItemRole param to determine\n // whether an element is a list item.\n _itemsLength () {\n const listItems = this._getListItemNodes();\n\n if (listItems === null) {\n return 0;\n }\n\n return listItems.length;\n },\n\n // Gets all the list item nodes within the list element\n _getListItemNodes () {\n const listElement = this._getListElement();\n\n if (!listElement) {\n console.error(ERROR_INVALID_LIST_ELEMENT, listElement);\n return null;\n }\n\n return Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n },\n\n onUpKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] > 0) {\n this.setHighlightIndex(this[indexKey] - 1);\n } else if (beginningOfListMethod) {\n this[beginningOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onDownKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] < this._itemsLength() - 1) {\n this.setHighlightIndex(this[indexKey] + 1);\n } else if (endOfListMethod) {\n this[endOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onHomeKey () {\n this.jumpToBeginning();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onEndKey () {\n this.jumpToEnd();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onNavigationKey (key) {\n const listItems = this._getListItemNodes();\n\n const matchingItems = listItems.filter(item => {\n const content = item.textContent.trim().toLowerCase();\n return content.startsWith(key.toLowerCase());\n });\n\n if (matchingItems.length <= 0) {\n return;\n }\n\n const highlightedMatchingItemIndex = matchingItems.findIndex(item => {\n return this[indexKey] === listItems.indexOf(item);\n });\n\n const nextHighlightedItemIndex = listItems.indexOf(\n highlightedMatchingItemIndex < matchingItems.length - 1\n ? matchingItems[highlightedMatchingItemIndex + 1]\n : matchingItems[0],\n );\n\n this.setHighlightIndex(nextHighlightedItemIndex);\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n isValidLetter (key) {\n if (key.length > 1) {\n return false;\n }\n\n return (key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z');\n },\n\n jumpToBeginning () {\n this.setHighlightIndex(0);\n },\n\n jumpToEnd () {\n this.setHighlightIndex(this._itemsLength() - 1);\n },\n\n setHighlightIndex (num) {\n this[indexKey] = num;\n this[idKey] = this._getItemId(num);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](num);\n }\n },\n\n setHighlightId (id) {\n if (!id) return;\n this[idKey] = id;\n this[indexKey] = this._getItemIndex(id);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](this._getItemIndex(id));\n }\n },\n\n _getItemIndex (id) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n const listItems = Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n return listItems.indexOf(listElement.querySelector(`#${id}`));\n },\n\n _getItemId (index) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n return listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`)[index]?.id;\n },\n\n scrollActiveItemIntoViewIfNeeded () {\n if (!this.scrollToOnHighlight) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n // When listElementKey is not passed,\n // scrollElementIntoViewIfNeeded will default to the immediate wrapper of the item.\n const listElement = this._getListElement();\n this.scrollElementIntoViewIfNeeded(activeItemEl, null, null, listElement);\n }\n },\n\n focusActiveItemIfNeeded () {\n if (!this.focusOnKeyboardNavigation) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n activeItemEl.focus();\n }\n },\n },\n});\n"],"names":["ERROR_INVALID_LIST_ELEMENT","KeyboardNavigation","listItemRole","indexKey","idKey","listElementKey","activeItemKey","openMethod","afterHighlightMethod","beginningOfListMethod","endOfListMethod","scrollToOnHighlight","focusOnKeyboardNavigation","Dom","returnFirstEl","_a","listItems","listElement","key","matchingItems","item","highlightedMatchingItemIndex","nextHighlightedItemIndex","num","id","index","activeItemEl"],"mappings":"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"}
@@ -19,9 +19,9 @@ const _ = "listElementKey is required or the referenced element doesn't exist. R
19
19
  // Optional, method to call when the highlightIndex goes past the beginning of the list.
20
20
  beginningOfListMethod: m = null,
21
21
  // Optional, method to call when the highlightIndex goes past the end of the list.
22
- endOfListMethod: g = null,
22
+ endOfListMethod: u = null,
23
23
  // Scroll the active element into view when highlighted by a keyboard event.
24
- scrollToOnHighlight: f = !0,
24
+ scrollToOnHighlight: g = !0,
25
25
  // Focus the active element on keyboard navigation.
26
26
  focusOnKeyboardNavigation: d = !1
27
27
  } = {}) => ({
@@ -30,7 +30,7 @@ const _ = "listElementKey is required or the referenced element doesn't exist. R
30
30
  return {
31
31
  [s]: -1,
32
32
  [n]: "",
33
- scrollToOnHighlight: f,
33
+ scrollToOnHighlight: g,
34
34
  focusOnKeyboardNavigation: d
35
35
  };
36
36
  },
@@ -62,7 +62,7 @@ const _ = "listElementKey is required or the referenced element doesn't exist. R
62
62
  l && this[l](!0), this[s] > 0 ? this.setHighlightIndex(this[s] - 1) : m && this[m](), this.scrollActiveItemIntoViewIfNeeded(), this.focusActiveItemIfNeeded();
63
63
  },
64
64
  onDownKey() {
65
- l && this[l](!0), this[s] < this._itemsLength() - 1 ? this.setHighlightIndex(this[s] + 1) : g && this[g](), this.scrollActiveItemIntoViewIfNeeded(), this.focusActiveItemIfNeeded();
65
+ l && this[l](!0), this[s] < this._itemsLength() - 1 ? this.setHighlightIndex(this[s] + 1) : u && this[u](), this.scrollActiveItemIntoViewIfNeeded(), this.focusActiveItemIfNeeded();
66
66
  },
67
67
  onHomeKey() {
68
68
  this.jumpToBeginning(), this.scrollActiveItemIntoViewIfNeeded(), this.focusActiveItemIfNeeded();
@@ -74,8 +74,8 @@ const _ = "listElementKey is required or the referenced element doesn't exist. R
74
74
  const e = this._getListItemNodes(), i = e.filter((h) => h.textContent.trim().toLowerCase().startsWith(t.toLowerCase()));
75
75
  if (i.length <= 0)
76
76
  return;
77
- const u = i.findIndex((h) => this[s] === e.indexOf(h)), a = e.indexOf(
78
- u < i.length - 1 ? i[u + 1] : i[0]
77
+ const f = i.findIndex((h) => this[s] === e.indexOf(h)), a = e.indexOf(
78
+ f < i.length - 1 ? i[f + 1] : i[0]
79
79
  );
80
80
  this.setHighlightIndex(a), this.scrollActiveItemIntoViewIfNeeded(), this.focusActiveItemIfNeeded();
81
81
  },
@@ -92,7 +92,7 @@ const _ = "listElementKey is required or the referenced element doesn't exist. R
92
92
  this[s] = t, this[n] = this._getItemId(t), this._itemsLength() && r && this[r](t);
93
93
  },
94
94
  setHighlightId(t) {
95
- this[n] = t, this[s] = this._getItemIndex(t), this._itemsLength() && r && this[r](this._getItemIndex(t));
95
+ t && (this[n] = t, this[s] = this._getItemIndex(t), this._itemsLength() && r && this[r](this._getItemIndex(t)));
96
96
  },
97
97
  _getItemIndex(t) {
98
98
  const e = this._getListElement();
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-list-navigation.js","sources":["../../../common/mixins/keyboard_list_navigation.js"],"sourcesContent":["import Dom from './dom';\nimport { returnFirstEl } from '@/common/utils';\n\nconst ERROR_INVALID_LIST_ELEMENT = (\n 'listElementKey is required or the referenced ' +\n 'element doesn\\'t exist. Received listElement: '\n);\n\n/**\n * Usage: `mixins: [keyboardNavigationMixin(options)]`\n *\n * This mixin provides some common data and methods to navigate a list of items\n * (such as a dropdown or select menu) by keyboard.\n *\n * To be effective, you must bind the onUpKey and onDownKey events, usually to\n * the root element of the component.\n *\n * @param listItemRole\n * @param indexKey\n * @param idKey\n * @param listElementKey\n * @param activeItemKey\n * @param openMethod\n * @param afterHighlightMethod\n * @param beginningOfListMethod\n * @param endOfListMethod\n * @param scrollToOnHighlight\n * @param focusOnKeyboardNavigation\n * @displayName Keyboard Navigation Mixin\n */\nexport default ({\n // Role of the list items in the component. This is used to identify the list items\n // so you must update this if the role of your list items is anything other than 'option'\n listItemRole = 'option',\n // Key of the data prop that will be added to the component.\n indexKey = 'highlightIndex',\n idKey = 'highlightId',\n // Key of the method that references the list element.\n listElementKey = 'listRef',\n // Optional, Key of the computed prop that references the currently active item element.\n activeItemKey = '',\n // Optional, name of the method that toggles the list visibility. Used for\n // opening the list when up or down is pressed.\n openMethod = null,\n // Optional, method to call when the highlightIndex is changed.\n afterHighlightMethod = null,\n // Optional, method to call when the highlightIndex goes past the beginning of the list.\n beginningOfListMethod = null,\n // Optional, method to call when the highlightIndex goes past the end of the list.\n endOfListMethod = null,\n // Scroll the active element into view when highlighted by a keyboard event.\n scrollToOnHighlight = true,\n // Focus the active element on keyboard navigation.\n focusOnKeyboardNavigation = false,\n} = {}) => ({\n mixins: [Dom],\n\n data () {\n return {\n [indexKey]: -1,\n [idKey]: '',\n scrollToOnHighlight,\n focusOnKeyboardNavigation,\n };\n },\n\n provide () {\n return {\n highlightId: () => this[idKey],\n };\n },\n\n methods: {\n // Returns the list element\n // this[listElement]() can return a Vue component, in which case we need to target\n // the $el property, or it can simply be an html element.\n _getListElement () {\n return returnFirstEl(this[listElementKey]()?.$el) || this[listElementKey]();\n },\n\n // Gets the length of all the items in the list, uses the listItemRole param to determine\n // whether an element is a list item.\n _itemsLength () {\n const listItems = this._getListItemNodes();\n\n if (listItems === null) {\n return 0;\n }\n\n return listItems.length;\n },\n\n // Gets all the list item nodes within the list element\n _getListItemNodes () {\n const listElement = this._getListElement();\n\n if (!listElement) {\n console.error(ERROR_INVALID_LIST_ELEMENT, listElement);\n return null;\n }\n\n return Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n },\n\n onUpKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] > 0) {\n this.setHighlightIndex(this[indexKey] - 1);\n } else if (beginningOfListMethod) {\n this[beginningOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onDownKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] < this._itemsLength() - 1) {\n this.setHighlightIndex(this[indexKey] + 1);\n } else if (endOfListMethod) {\n this[endOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onHomeKey () {\n this.jumpToBeginning();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onEndKey () {\n this.jumpToEnd();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onNavigationKey (key) {\n const listItems = this._getListItemNodes();\n\n const matchingItems = listItems.filter(item => {\n const content = item.textContent.trim().toLowerCase();\n return content.startsWith(key.toLowerCase());\n });\n\n if (matchingItems.length <= 0) {\n return;\n }\n\n const highlightedMatchingItemIndex = matchingItems.findIndex(item => {\n return this[indexKey] === listItems.indexOf(item);\n });\n\n const nextHighlightedItemIndex = listItems.indexOf(\n highlightedMatchingItemIndex < matchingItems.length - 1\n ? matchingItems[highlightedMatchingItemIndex + 1]\n : matchingItems[0],\n );\n\n this.setHighlightIndex(nextHighlightedItemIndex);\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n isValidLetter (key) {\n if (key.length > 1) {\n return false;\n }\n\n return (key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z');\n },\n\n jumpToBeginning () {\n this.setHighlightIndex(0);\n },\n\n jumpToEnd () {\n this.setHighlightIndex(this._itemsLength() - 1);\n },\n\n setHighlightIndex (num) {\n this[indexKey] = num;\n this[idKey] = this._getItemId(num);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](num);\n }\n },\n\n setHighlightId (id) {\n this[idKey] = id;\n this[indexKey] = this._getItemIndex(id);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](this._getItemIndex(id));\n }\n },\n\n _getItemIndex (id) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n const listItems = Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n return listItems.indexOf(listElement.querySelector(`#${id}`));\n },\n\n _getItemId (index) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n return listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`)[index]?.id;\n },\n\n scrollActiveItemIntoViewIfNeeded () {\n if (!this.scrollToOnHighlight) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n // When listElementKey is not passed,\n // scrollElementIntoViewIfNeeded will default to the immediate wrapper of the item.\n const listElement = this._getListElement();\n this.scrollElementIntoViewIfNeeded(activeItemEl, null, null, listElement);\n }\n },\n\n focusActiveItemIfNeeded () {\n if (!this.focusOnKeyboardNavigation) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n activeItemEl.focus();\n }\n },\n },\n});\n"],"names":["ERROR_INVALID_LIST_ELEMENT","KeyboardNavigation","listItemRole","indexKey","idKey","listElementKey","activeItemKey","openMethod","afterHighlightMethod","beginningOfListMethod","endOfListMethod","scrollToOnHighlight","focusOnKeyboardNavigation","Dom","returnFirstEl","_a","listItems","listElement","key","matchingItems","item","highlightedMatchingItemIndex","nextHighlightedItemIndex","num","id","index","activeItemEl"],"mappings":"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"}
1
+ {"version":3,"file":"keyboard-list-navigation.js","sources":["../../../common/mixins/keyboard_list_navigation.js"],"sourcesContent":["import Dom from './dom';\nimport { returnFirstEl } from '@/common/utils';\n\nconst ERROR_INVALID_LIST_ELEMENT = (\n 'listElementKey is required or the referenced ' +\n 'element doesn\\'t exist. Received listElement: '\n);\n\n/**\n * Usage: `mixins: [keyboardNavigationMixin(options)]`\n *\n * This mixin provides some common data and methods to navigate a list of items\n * (such as a dropdown or select menu) by keyboard.\n *\n * To be effective, you must bind the onUpKey and onDownKey events, usually to\n * the root element of the component.\n *\n * @param listItemRole\n * @param indexKey\n * @param idKey\n * @param listElementKey\n * @param activeItemKey\n * @param openMethod\n * @param afterHighlightMethod\n * @param beginningOfListMethod\n * @param endOfListMethod\n * @param scrollToOnHighlight\n * @param focusOnKeyboardNavigation\n * @displayName Keyboard Navigation Mixin\n */\nexport default ({\n // Role of the list items in the component. This is used to identify the list items\n // so you must update this if the role of your list items is anything other than 'option'\n listItemRole = 'option',\n // Key of the data prop that will be added to the component.\n indexKey = 'highlightIndex',\n idKey = 'highlightId',\n // Key of the method that references the list element.\n listElementKey = 'listRef',\n // Optional, Key of the computed prop that references the currently active item element.\n activeItemKey = '',\n // Optional, name of the method that toggles the list visibility. Used for\n // opening the list when up or down is pressed.\n openMethod = null,\n // Optional, method to call when the highlightIndex is changed.\n afterHighlightMethod = null,\n // Optional, method to call when the highlightIndex goes past the beginning of the list.\n beginningOfListMethod = null,\n // Optional, method to call when the highlightIndex goes past the end of the list.\n endOfListMethod = null,\n // Scroll the active element into view when highlighted by a keyboard event.\n scrollToOnHighlight = true,\n // Focus the active element on keyboard navigation.\n focusOnKeyboardNavigation = false,\n} = {}) => ({\n mixins: [Dom],\n\n data () {\n return {\n [indexKey]: -1,\n [idKey]: '',\n scrollToOnHighlight,\n focusOnKeyboardNavigation,\n };\n },\n\n provide () {\n return {\n highlightId: () => this[idKey],\n };\n },\n\n methods: {\n // Returns the list element\n // this[listElement]() can return a Vue component, in which case we need to target\n // the $el property, or it can simply be an html element.\n _getListElement () {\n return returnFirstEl(this[listElementKey]()?.$el) || this[listElementKey]();\n },\n\n // Gets the length of all the items in the list, uses the listItemRole param to determine\n // whether an element is a list item.\n _itemsLength () {\n const listItems = this._getListItemNodes();\n\n if (listItems === null) {\n return 0;\n }\n\n return listItems.length;\n },\n\n // Gets all the list item nodes within the list element\n _getListItemNodes () {\n const listElement = this._getListElement();\n\n if (!listElement) {\n console.error(ERROR_INVALID_LIST_ELEMENT, listElement);\n return null;\n }\n\n return Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n },\n\n onUpKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] > 0) {\n this.setHighlightIndex(this[indexKey] - 1);\n } else if (beginningOfListMethod) {\n this[beginningOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onDownKey () {\n if (openMethod) {\n this[openMethod](true);\n }\n if (this[indexKey] < this._itemsLength() - 1) {\n this.setHighlightIndex(this[indexKey] + 1);\n } else if (endOfListMethod) {\n this[endOfListMethod]();\n }\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onHomeKey () {\n this.jumpToBeginning();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onEndKey () {\n this.jumpToEnd();\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n onNavigationKey (key) {\n const listItems = this._getListItemNodes();\n\n const matchingItems = listItems.filter(item => {\n const content = item.textContent.trim().toLowerCase();\n return content.startsWith(key.toLowerCase());\n });\n\n if (matchingItems.length <= 0) {\n return;\n }\n\n const highlightedMatchingItemIndex = matchingItems.findIndex(item => {\n return this[indexKey] === listItems.indexOf(item);\n });\n\n const nextHighlightedItemIndex = listItems.indexOf(\n highlightedMatchingItemIndex < matchingItems.length - 1\n ? matchingItems[highlightedMatchingItemIndex + 1]\n : matchingItems[0],\n );\n\n this.setHighlightIndex(nextHighlightedItemIndex);\n this.scrollActiveItemIntoViewIfNeeded();\n this.focusActiveItemIfNeeded();\n },\n\n isValidLetter (key) {\n if (key.length > 1) {\n return false;\n }\n\n return (key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z');\n },\n\n jumpToBeginning () {\n this.setHighlightIndex(0);\n },\n\n jumpToEnd () {\n this.setHighlightIndex(this._itemsLength() - 1);\n },\n\n setHighlightIndex (num) {\n this[indexKey] = num;\n this[idKey] = this._getItemId(num);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](num);\n }\n },\n\n setHighlightId (id) {\n if (!id) return;\n this[idKey] = id;\n this[indexKey] = this._getItemIndex(id);\n\n if (this._itemsLength() && afterHighlightMethod) {\n this[afterHighlightMethod](this._getItemIndex(id));\n }\n },\n\n _getItemIndex (id) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n const listItems = Array.from(listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`));\n return listItems.indexOf(listElement.querySelector(`#${id}`));\n },\n\n _getItemId (index) {\n const listElement = this._getListElement();\n if (!listElement) {\n return;\n }\n\n return listElement.querySelectorAll(`[role=\"${listItemRole}\"], #sr-only-close-button`)[index]?.id;\n },\n\n scrollActiveItemIntoViewIfNeeded () {\n if (!this.scrollToOnHighlight) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n // When listElementKey is not passed,\n // scrollElementIntoViewIfNeeded will default to the immediate wrapper of the item.\n const listElement = this._getListElement();\n this.scrollElementIntoViewIfNeeded(activeItemEl, null, null, listElement);\n }\n },\n\n focusActiveItemIfNeeded () {\n if (!this.focusOnKeyboardNavigation) {\n return;\n }\n const activeItemEl = this[activeItemKey];\n if (activeItemEl) {\n activeItemEl.focus();\n }\n },\n },\n});\n"],"names":["ERROR_INVALID_LIST_ELEMENT","KeyboardNavigation","listItemRole","indexKey","idKey","listElementKey","activeItemKey","openMethod","afterHighlightMethod","beginningOfListMethod","endOfListMethod","scrollToOnHighlight","focusOnKeyboardNavigation","Dom","returnFirstEl","_a","listItems","listElement","key","matchingItems","item","highlightedMatchingItemIndex","nextHighlightedItemIndex","num","id","index","activeItemEl"],"mappings":"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"}