@dialpad/dialtone-vue 3.218.3 → 3.219.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 (763) hide show
  1. package/dist/common/constants/index.cjs +1 -1
  2. package/dist/common/constants/index.cjs.map +1 -1
  3. package/dist/common/constants/index.js +37 -20
  4. package/dist/common/constants/index.js.map +1 -1
  5. package/dist/common/constants/sizes.cjs +2 -0
  6. package/dist/common/constants/sizes.cjs.map +1 -0
  7. package/dist/common/constants/sizes.js +20 -0
  8. package/dist/common/constants/sizes.js.map +1 -0
  9. package/dist/common/mixins/index.cjs +1 -1
  10. package/dist/common/mixins/index.js +9 -7
  11. package/dist/common/mixins/index.js.map +1 -1
  12. package/dist/common/mixins/mode.cjs +2 -0
  13. package/dist/common/mixins/mode.cjs.map +1 -0
  14. package/dist/common/mixins/mode.js +82 -0
  15. package/dist/common/mixins/mode.js.map +1 -0
  16. package/dist/component-documentation.json +1 -1
  17. package/dist/dialtone-vue.cjs +1 -1
  18. package/dist/dialtone-vue.js +464 -408
  19. package/dist/dialtone-vue.js.map +1 -1
  20. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  21. package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  22. package/dist/lib/attachment-carousel/attachment-carousel.js +8 -8
  23. package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  24. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  25. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  26. package/dist/lib/avatar/avatar-constants.js +169 -43
  27. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  28. package/dist/lib/avatar/avatar.cjs +1 -1
  29. package/dist/lib/avatar/avatar.cjs.map +1 -1
  30. package/dist/lib/avatar/avatar.js +186 -100
  31. package/dist/lib/avatar/avatar.js.map +1 -1
  32. package/dist/lib/avatar/index.cjs +1 -1
  33. package/dist/lib/avatar/index.js +16 -10
  34. package/dist/lib/badge/badge.cjs +1 -1
  35. package/dist/lib/badge/badge.cjs.map +1 -1
  36. package/dist/lib/badge/badge.js +47 -35
  37. package/dist/lib/badge/badge.js.map +1 -1
  38. package/dist/lib/banner/banner.cjs +1 -1
  39. package/dist/lib/banner/banner.cjs.map +1 -1
  40. package/dist/lib/banner/banner.js +19 -18
  41. package/dist/lib/banner/banner.js.map +1 -1
  42. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  43. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  44. package/dist/lib/breadcrumbs/breadcrumb-item.js +4 -1
  45. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  46. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  47. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  48. package/dist/lib/breadcrumbs/breadcrumbs.js +22 -18
  49. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  50. package/dist/lib/button/button-constants.cjs +1 -1
  51. package/dist/lib/button/button-constants.cjs.map +1 -1
  52. package/dist/lib/button/button-constants.js +33 -15
  53. package/dist/lib/button/button-constants.js.map +1 -1
  54. package/dist/lib/button/button.cjs +1 -1
  55. package/dist/lib/button/button.cjs.map +1 -1
  56. package/dist/lib/button/button.js +195 -78
  57. package/dist/lib/button/button.js.map +1 -1
  58. package/dist/lib/button-group/button-group.cjs.map +1 -1
  59. package/dist/lib/button-group/button-group.js +1 -0
  60. package/dist/lib/button-group/button-group.js.map +1 -1
  61. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  62. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  63. package/dist/lib/callbar-button/callbar-button.js +14 -15
  64. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  65. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  66. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  67. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +44 -32
  68. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  69. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  70. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  71. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +40 -28
  72. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  73. package/dist/lib/callbox/callbox.cjs +1 -1
  74. package/dist/lib/callbox/callbox.cjs.map +1 -1
  75. package/dist/lib/callbox/callbox.js +48 -48
  76. package/dist/lib/callbox/callbox.js.map +1 -1
  77. package/dist/lib/checkbox/checkbox.cjs +1 -1
  78. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  79. package/dist/lib/checkbox/checkbox.js +97 -43
  80. package/dist/lib/checkbox/checkbox.js.map +1 -1
  81. package/dist/lib/chip/chip-constants.cjs +1 -1
  82. package/dist/lib/chip/chip-constants.cjs.map +1 -1
  83. package/dist/lib/chip/chip-constants.js +17 -2
  84. package/dist/lib/chip/chip-constants.js.map +1 -1
  85. package/dist/lib/chip/chip.cjs +1 -1
  86. package/dist/lib/chip/chip.cjs.map +1 -1
  87. package/dist/lib/chip/chip.js +17 -17
  88. package/dist/lib/chip/chip.js.map +1 -1
  89. package/dist/lib/codeblock/codeblock-constants.cjs +2 -0
  90. package/dist/lib/codeblock/codeblock-constants.cjs.map +1 -0
  91. package/dist/lib/codeblock/codeblock-constants.js +12 -0
  92. package/dist/lib/codeblock/codeblock-constants.js.map +1 -0
  93. package/dist/lib/codeblock/codeblock.cjs +1 -2
  94. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  95. package/dist/lib/codeblock/codeblock.js +38 -12
  96. package/dist/lib/codeblock/codeblock.js.map +1 -1
  97. package/dist/lib/collapsible/collapsible.cjs +1 -1
  98. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  99. package/dist/lib/collapsible/collapsible.js +1 -1
  100. package/dist/lib/collapsible/collapsible.js.map +1 -1
  101. package/dist/lib/combobox/combobox.cjs +2 -2
  102. package/dist/lib/combobox/combobox.cjs.map +1 -1
  103. package/dist/lib/combobox/combobox.js +22 -21
  104. package/dist/lib/combobox/combobox.js.map +1 -1
  105. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
  106. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  107. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +16 -6
  108. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  109. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  110. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  111. package/dist/lib/combobox-multi-select/combobox-multi-select.js +48 -46
  112. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  113. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  114. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  115. package/dist/lib/combobox-with-popover/combobox-with-popover.js +37 -29
  116. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  117. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  118. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  119. package/dist/lib/contact-centers-row/contact-centers-row.js +36 -36
  120. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  121. package/dist/lib/contact-info/contact-info.cjs +1 -1
  122. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  123. package/dist/lib/contact-info/contact-info.js +56 -56
  124. package/dist/lib/contact-info/contact-info.js.map +1 -1
  125. package/dist/lib/contact-row/contact-row.cjs +1 -1
  126. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  127. package/dist/lib/contact-row/contact-row.js +3 -3
  128. package/dist/lib/contact-row/contact-row.js.map +1 -1
  129. package/dist/lib/datepicker/datepicker.cjs +1 -1
  130. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  131. package/dist/lib/datepicker/datepicker.js +93 -95
  132. package/dist/lib/datepicker/datepicker.js.map +1 -1
  133. package/dist/lib/description-list/description-list.cjs +1 -1
  134. package/dist/lib/description-list/description-list.cjs.map +1 -1
  135. package/dist/lib/description-list/description-list.js +2 -2
  136. package/dist/lib/description-list/description-list.js.map +1 -1
  137. package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
  138. package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
  139. package/dist/lib/dropdown/dropdown-constants.js +2 -2
  140. package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
  141. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  142. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  143. package/dist/lib/dropdown/dropdown-list.js +29 -18
  144. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  145. package/dist/lib/dropdown/dropdown.cjs +1 -1
  146. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  147. package/dist/lib/dropdown/dropdown.js +27 -19
  148. package/dist/lib/dropdown/dropdown.js.map +1 -1
  149. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  150. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  151. package/dist/lib/editor/EditorToolbarButton.js +6 -6
  152. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  153. package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
  154. package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
  155. package/dist/lib/editor/EditorToolbarDropdownButton.js +3 -3
  156. package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
  157. package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
  158. package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
  159. package/dist/lib/editor/EditorToolbarPopoverButton.js +3 -3
  160. package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
  161. package/dist/lib/editor/editor.cjs +1 -1
  162. package/dist/lib/editor/editor.cjs.map +1 -1
  163. package/dist/lib/editor/editor.js +48 -48
  164. package/dist/lib/editor/editor.js.map +1 -1
  165. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  166. package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  167. package/dist/lib/emoji-picker/emoji-picker.js +62 -59
  168. package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
  169. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  170. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  171. package/dist/lib/emoji-row/emoji-row.js +10 -10
  172. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  173. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  174. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +2 -1
  175. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  176. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  177. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  178. package/dist/lib/empty-state/empty-state-constants.js +54 -12
  179. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  180. package/dist/lib/empty-state/empty-state.cjs +1 -1
  181. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  182. package/dist/lib/empty-state/empty-state.js +60 -36
  183. package/dist/lib/empty-state/empty-state.js.map +1 -1
  184. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  185. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  186. package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
  187. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  188. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  189. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  190. package/dist/lib/feed-item-row/feed-item-row.js +12 -12
  191. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  192. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  193. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  194. package/dist/lib/filter-pill/filter-pill.js +569 -0
  195. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  196. package/dist/lib/filter-pill/index.cjs +2 -0
  197. package/dist/lib/filter-pill/index.cjs.map +1 -0
  198. package/dist/lib/filter-pill/index.js +5 -0
  199. package/dist/lib/filter-pill/index.js.map +1 -0
  200. package/dist/lib/general-row/general-row.cjs +1 -1
  201. package/dist/lib/general-row/general-row.cjs.map +1 -1
  202. package/dist/lib/general-row/general-row.js +154 -100
  203. package/dist/lib/general-row/general-row.js.map +1 -1
  204. package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
  205. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  206. package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
  207. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  208. package/dist/lib/group-row/group-row.cjs +1 -1
  209. package/dist/lib/group-row/group-row.cjs.map +1 -1
  210. package/dist/lib/group-row/group-row.js +2 -2
  211. package/dist/lib/group-row/group-row.js.map +1 -1
  212. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  213. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  214. package/dist/lib/grouped-chip/grouped-chip.js +33 -33
  215. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  216. package/dist/lib/hovercard/hovercard.cjs +1 -1
  217. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  218. package/dist/lib/hovercard/hovercard.js +37 -28
  219. package/dist/lib/hovercard/hovercard.js.map +1 -1
  220. package/dist/lib/icon/icon.cjs +1 -1
  221. package/dist/lib/icon/icon.cjs.map +1 -1
  222. package/dist/lib/icon/icon.js +1 -1
  223. package/dist/lib/icon/icon.js.map +1 -1
  224. package/dist/lib/illustration/illustration.cjs +1 -1
  225. package/dist/lib/illustration/illustration.cjs.map +1 -1
  226. package/dist/lib/illustration/illustration.js +1 -1
  227. package/dist/lib/illustration/illustration.js.map +1 -1
  228. package/dist/lib/image-viewer/image-viewer.cjs +1 -1
  229. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  230. package/dist/lib/image-viewer/image-viewer.js +28 -27
  231. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  232. package/dist/lib/input/input-constants.cjs +1 -1
  233. package/dist/lib/input/input-constants.cjs.map +1 -1
  234. package/dist/lib/input/input-constants.js +43 -22
  235. package/dist/lib/input/input-constants.js.map +1 -1
  236. package/dist/lib/input/input.cjs +1 -1
  237. package/dist/lib/input/input.cjs.map +1 -1
  238. package/dist/lib/input/input.js +165 -79
  239. package/dist/lib/input/input.js.map +1 -1
  240. package/dist/lib/input-group/input-group.cjs +1 -1
  241. package/dist/lib/input-group/input-group.cjs.map +1 -1
  242. package/dist/lib/input-group/input-group.js +35 -28
  243. package/dist/lib/input-group/input-group.js.map +1 -1
  244. package/dist/lib/item-layout/item-layout.cjs +3 -3
  245. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  246. package/dist/lib/item-layout/item-layout.js +74 -39
  247. package/dist/lib/item-layout/item-layout.js.map +1 -1
  248. package/dist/lib/ivr-node/ivr-node.cjs +1 -1
  249. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  250. package/dist/lib/ivr-node/ivr-node.js +1 -1
  251. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  252. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  253. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  254. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +57 -43
  255. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  256. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  257. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  258. package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
  259. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  260. package/dist/lib/link/link.cjs +1 -1
  261. package/dist/lib/link/link.cjs.map +1 -1
  262. package/dist/lib/link/link.js +22 -12
  263. package/dist/lib/link/link.js.map +1 -1
  264. package/dist/lib/list-item/list-item.cjs +1 -1
  265. package/dist/lib/list-item/list-item.cjs.map +1 -1
  266. package/dist/lib/list-item/list-item.js +27 -16
  267. package/dist/lib/list-item/list-item.js.map +1 -1
  268. package/dist/lib/message-input/message-input-button.cjs +1 -1
  269. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  270. package/dist/lib/message-input/message-input-button.js +4 -4
  271. package/dist/lib/message-input/message-input-button.js.map +1 -1
  272. package/dist/lib/message-input/message-input-link.cjs +1 -1
  273. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  274. package/dist/lib/message-input/message-input-link.js +12 -12
  275. package/dist/lib/message-input/message-input-link.js.map +1 -1
  276. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  277. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  278. package/dist/lib/message-input/message-input-topbar.js +2 -2
  279. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  280. package/dist/lib/message-input/message-input.cjs +1 -1
  281. package/dist/lib/message-input/message-input.cjs.map +1 -1
  282. package/dist/lib/message-input/message-input.js +52 -52
  283. package/dist/lib/message-input/message-input.js.map +1 -1
  284. package/dist/lib/modal/modal.cjs +1 -1
  285. package/dist/lib/modal/modal.cjs.map +1 -1
  286. package/dist/lib/modal/modal.js +120 -106
  287. package/dist/lib/modal/modal.js.map +1 -1
  288. package/dist/lib/mode-directive/index.cjs +2 -0
  289. package/dist/lib/mode-directive/index.cjs.map +1 -0
  290. package/dist/lib/mode-directive/index.js +5 -0
  291. package/dist/lib/mode-directive/index.js.map +1 -0
  292. package/dist/lib/mode-directive/mode.cjs +2 -0
  293. package/dist/lib/mode-directive/mode.cjs.map +1 -0
  294. package/dist/lib/mode-directive/mode.js +75 -0
  295. package/dist/lib/mode-directive/mode.js.map +1 -0
  296. package/dist/lib/mode-island/index.cjs +2 -0
  297. package/dist/lib/mode-island/index.cjs.map +1 -0
  298. package/dist/lib/mode-island/index.js +7 -0
  299. package/dist/lib/mode-island/index.js.map +1 -0
  300. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  301. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  302. package/dist/lib/mode-island/mode-island-constants.js +12 -0
  303. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  304. package/dist/lib/mode-island/mode-island.cjs +2 -0
  305. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  306. package/dist/lib/mode-island/mode-island.js +130 -0
  307. package/dist/lib/mode-island/mode-island.js.map +1 -0
  308. package/dist/lib/mode-island/utils.cjs +2 -0
  309. package/dist/lib/mode-island/utils.cjs.map +1 -0
  310. package/dist/lib/mode-island/utils.js +32 -0
  311. package/dist/lib/mode-island/utils.js.map +1 -0
  312. package/dist/lib/mode-island/validators.cjs +2 -0
  313. package/dist/lib/mode-island/validators.cjs.map +1 -0
  314. package/dist/lib/mode-island/validators.js +12 -0
  315. package/dist/lib/mode-island/validators.js.map +1 -0
  316. package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
  317. package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
  318. package/dist/lib/motion-text/motion-text-constants.js +18 -8
  319. package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
  320. package/dist/lib/motion-text/motion-text.cjs +1 -1
  321. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  322. package/dist/lib/motion-text/motion-text.js +17 -17
  323. package/dist/lib/motion-text/motion-text.js.map +1 -1
  324. package/dist/lib/notice/notice-action.cjs +1 -1
  325. package/dist/lib/notice/notice-action.cjs.map +1 -1
  326. package/dist/lib/notice/notice-action.js +9 -9
  327. package/dist/lib/notice/notice-action.js.map +1 -1
  328. package/dist/lib/notice/notice-content.cjs +1 -1
  329. package/dist/lib/notice/notice-content.cjs.map +1 -1
  330. package/dist/lib/notice/notice-content.js +38 -21
  331. package/dist/lib/notice/notice-content.js.map +1 -1
  332. package/dist/lib/notice/notice-icon.cjs +1 -1
  333. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  334. package/dist/lib/notice/notice-icon.js +1 -1
  335. package/dist/lib/notice/notice-icon.js.map +1 -1
  336. package/dist/lib/notice/notice.cjs +1 -1
  337. package/dist/lib/notice/notice.cjs.map +1 -1
  338. package/dist/lib/notice/notice.js +20 -19
  339. package/dist/lib/notice/notice.js.map +1 -1
  340. package/dist/lib/pagination/pagination.cjs +1 -1
  341. package/dist/lib/pagination/pagination.cjs.map +1 -1
  342. package/dist/lib/pagination/pagination.js +16 -15
  343. package/dist/lib/pagination/pagination.js.map +1 -1
  344. package/dist/lib/popover/popover-constants.cjs +1 -1
  345. package/dist/lib/popover/popover-constants.cjs.map +1 -1
  346. package/dist/lib/popover/popover-constants.js +16 -16
  347. package/dist/lib/popover/popover-constants.js.map +1 -1
  348. package/dist/lib/popover/popover-header-footer.cjs +1 -1
  349. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  350. package/dist/lib/popover/popover-header-footer.js +19 -12
  351. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  352. package/dist/lib/popover/popover.cjs +1 -1
  353. package/dist/lib/popover/popover.cjs.map +1 -1
  354. package/dist/lib/popover/popover.js +80 -62
  355. package/dist/lib/popover/popover.js.map +1 -1
  356. package/dist/lib/radio/radio.cjs +1 -1
  357. package/dist/lib/radio/radio.cjs.map +1 -1
  358. package/dist/lib/radio/radio.js +103 -41
  359. package/dist/lib/radio/radio.js.map +1 -1
  360. package/dist/lib/rich-text-editor/rich-text-editor.cjs +3 -3
  361. package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  362. package/dist/lib/rich-text-editor/rich-text-editor.js +637 -590
  363. package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  364. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  365. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  366. package/dist/lib/root-layout/root-layout-constants.js +4 -2
  367. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  368. package/dist/lib/root-layout/root-layout.cjs +1 -1
  369. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  370. package/dist/lib/root-layout/root-layout.js +15 -13
  371. package/dist/lib/root-layout/root-layout.js.map +1 -1
  372. package/dist/lib/segmented-control/index.cjs +2 -0
  373. package/dist/lib/segmented-control/index.cjs.map +1 -0
  374. package/dist/lib/segmented-control/index.js +20 -0
  375. package/dist/lib/segmented-control/index.js.map +1 -0
  376. package/dist/lib/segmented-control/segmented-control-constants.cjs +2 -0
  377. package/dist/lib/segmented-control/segmented-control-constants.cjs.map +1 -0
  378. package/dist/lib/segmented-control/segmented-control-constants.js +45 -0
  379. package/dist/lib/segmented-control/segmented-control-constants.js.map +1 -0
  380. package/dist/lib/segmented-control/segmented-control-item.cjs +2 -0
  381. package/dist/lib/segmented-control/segmented-control-item.cjs.map +1 -0
  382. package/dist/lib/segmented-control/segmented-control-item.js +124 -0
  383. package/dist/lib/segmented-control/segmented-control-item.js.map +1 -0
  384. package/dist/lib/segmented-control/segmented-control.cjs +2 -0
  385. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -0
  386. package/dist/lib/segmented-control/segmented-control.js +236 -0
  387. package/dist/lib/segmented-control/segmented-control.js.map +1 -0
  388. package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
  389. package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
  390. package/dist/lib/select-menu/select-menu-constants.js +13 -6
  391. package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
  392. package/dist/lib/select-menu/select-menu.cjs +1 -1
  393. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  394. package/dist/lib/select-menu/select-menu.js +133 -67
  395. package/dist/lib/select-menu/select-menu.js.map +1 -1
  396. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  397. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  398. package/dist/lib/settings-menu-button/settings-menu-button.js +20 -20
  399. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  400. package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
  401. package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
  402. package/dist/lib/skeleton/skeleton-constants.js +26 -14
  403. package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
  404. package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
  405. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  406. package/dist/lib/skeleton/skeleton-list-item.js +3 -3
  407. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  408. package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
  409. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  410. package/dist/lib/skeleton/skeleton-shape.js +11 -11
  411. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  412. package/dist/lib/split-button/split-button-constants.cjs +1 -1
  413. package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
  414. package/dist/lib/split-button/split-button-constants.js +7 -0
  415. package/dist/lib/split-button/split-button-constants.js.map +1 -1
  416. package/dist/lib/split-button/split-button-end.cjs +2 -0
  417. package/dist/lib/split-button/split-button-end.cjs.map +1 -0
  418. package/dist/lib/split-button/{split-button-omega.js → split-button-end.js} +16 -16
  419. package/dist/lib/split-button/split-button-end.js.map +1 -0
  420. package/dist/lib/split-button/split-button-start.cjs +2 -0
  421. package/dist/lib/split-button/split-button-start.cjs.map +1 -0
  422. package/dist/lib/split-button/split-button-start.js +231 -0
  423. package/dist/lib/split-button/split-button-start.js.map +1 -0
  424. package/dist/lib/split-button/split-button.cjs +1 -1
  425. package/dist/lib/split-button/split-button.cjs.map +1 -1
  426. package/dist/lib/split-button/split-button.js +337 -101
  427. package/dist/lib/split-button/split-button.js.map +1 -1
  428. package/dist/lib/stack/stack-constants.cjs +1 -1
  429. package/dist/lib/stack/stack-constants.cjs.map +1 -1
  430. package/dist/lib/stack/stack-constants.js +1 -1
  431. package/dist/lib/stack/stack-constants.js.map +1 -1
  432. package/dist/lib/stack/stack.cjs.map +1 -1
  433. package/dist/lib/stack/stack.js +5 -3
  434. package/dist/lib/stack/stack.js.map +1 -1
  435. package/dist/lib/tab/index.cjs +1 -1
  436. package/dist/lib/tab/index.js +14 -11
  437. package/dist/lib/tab/tab-group.cjs +1 -1
  438. package/dist/lib/tab/tab-group.cjs.map +1 -1
  439. package/dist/lib/tab/tab-group.js +171 -56
  440. package/dist/lib/tab/tab-group.js.map +1 -1
  441. package/dist/lib/tab/tab.cjs +1 -1
  442. package/dist/lib/tab/tab.cjs.map +1 -1
  443. package/dist/lib/tab/tab.js +105 -31
  444. package/dist/lib/tab/tab.js.map +1 -1
  445. package/dist/lib/tab/tabs-constants.cjs +1 -1
  446. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  447. package/dist/lib/tab/tabs-constants.js +31 -10
  448. package/dist/lib/tab/tabs-constants.js.map +1 -1
  449. package/dist/lib/text/index.cjs +2 -0
  450. package/dist/lib/text/index.cjs.map +1 -0
  451. package/dist/lib/text/index.js +20 -0
  452. package/dist/lib/text/index.js.map +1 -0
  453. package/dist/lib/text/text-constants.cjs +2 -0
  454. package/dist/lib/text/text-constants.cjs.map +1 -0
  455. package/dist/lib/text/text-constants.js +78 -0
  456. package/dist/lib/text/text-constants.js.map +1 -0
  457. package/dist/lib/text/text-tone-tokens.cjs +2 -0
  458. package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
  459. package/dist/lib/text/text-tone-tokens.js +33 -0
  460. package/dist/lib/text/text-tone-tokens.js.map +1 -0
  461. package/dist/lib/text/text.cjs +2 -0
  462. package/dist/lib/text/text.cjs.map +1 -0
  463. package/dist/lib/text/text.js +206 -0
  464. package/dist/lib/text/text.js.map +1 -0
  465. package/dist/lib/toast/toast.cjs +1 -1
  466. package/dist/lib/toast/toast.cjs.map +1 -1
  467. package/dist/lib/toast/toast.js +12 -11
  468. package/dist/lib/toast/toast.js.map +1 -1
  469. package/dist/lib/toggle/toggle-constants.cjs +1 -1
  470. package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
  471. package/dist/lib/toggle/toggle-constants.js +6 -2
  472. package/dist/lib/toggle/toggle-constants.js.map +1 -1
  473. package/dist/lib/toggle/toggle.cjs +1 -1
  474. package/dist/lib/toggle/toggle.cjs.map +1 -1
  475. package/dist/lib/toggle/toggle.js +39 -35
  476. package/dist/lib/toggle/toggle.js.map +1 -1
  477. package/dist/lib/tooltip/tooltip.cjs +2 -2
  478. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  479. package/dist/lib/tooltip/tooltip.js +31 -26
  480. package/dist/lib/tooltip/tooltip.js.map +1 -1
  481. package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
  482. package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
  483. package/dist/lib/tooltip-directive/tooltip.js +40 -39
  484. package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
  485. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  486. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  487. package/dist/lib/top-banner-info/top-banner-info.js +16 -16
  488. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  489. package/dist/lib/unread-pill/unread-pill.cjs +1 -1
  490. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  491. package/dist/lib/unread-pill/unread-pill.js +1 -1
  492. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  493. package/dist/localization/en-US.cjs +5 -0
  494. package/dist/localization/en-US.cjs.map +1 -1
  495. package/dist/localization/en-US.js +5 -0
  496. package/dist/localization/en-US.js.map +1 -1
  497. package/dist/mode_constants-C1GFodVj.js +14 -0
  498. package/dist/mode_constants-C1GFodVj.js.map +1 -0
  499. package/dist/mode_constants-DeLSnTcQ.cjs +2 -0
  500. package/dist/mode_constants-DeLSnTcQ.cjs.map +1 -0
  501. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  502. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  503. package/dist/shared/sr_only_close_button.cjs +1 -1
  504. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  505. package/dist/shared/sr_only_close_button.js +1 -1
  506. package/dist/shared/sr_only_close_button.js.map +1 -1
  507. package/dist/style.css +1 -1
  508. package/dist/types/common/constants/index.d.ts +25 -19
  509. package/dist/types/common/constants/index.d.ts.map +1 -1
  510. package/dist/types/common/constants/sizes.d.ts +22 -0
  511. package/dist/types/common/constants/sizes.d.ts.map +1 -0
  512. package/dist/types/common/mixins/index.d.ts +1 -0
  513. package/dist/types/common/mixins/mode.d.ts +25 -0
  514. package/dist/types/common/mixins/mode.d.ts.map +1 -0
  515. package/dist/types/common/mode_constants.d.ts +37 -0
  516. package/dist/types/common/mode_constants.d.ts.map +1 -0
  517. package/dist/types/common/sr_only_close_button.vue.d.ts +53 -7
  518. package/dist/types/common/sr_only_close_button.vue.d.ts.map +1 -1
  519. package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
  520. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  521. package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
  522. package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
  523. package/dist/types/components/avatar/index.d.ts +1 -1
  524. package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
  525. package/dist/types/components/banner/banner.vue.d.ts +246 -15
  526. package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
  527. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
  528. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  529. package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
  530. package/dist/types/components/button/button.vue.d.ts +53 -7
  531. package/dist/types/components/button/button.vue.d.ts.map +1 -1
  532. package/dist/types/components/button/button_constants.d.ts +28 -19
  533. package/dist/types/components/button/button_constants.d.ts.map +1 -1
  534. package/dist/types/components/checkbox/checkbox.vue.d.ts +178 -4
  535. package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  536. package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +138 -0
  537. package/dist/types/components/chip/chip.vue.d.ts +58 -12
  538. package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
  539. package/dist/types/components/chip/chip_constants.d.ts +24 -21
  540. package/dist/types/components/chip/chip_constants.d.ts.map +1 -1
  541. package/dist/types/components/codeblock/codeblock.vue.d.ts +25 -2
  542. package/dist/types/components/codeblock/codeblock.vue.d.ts.map +1 -1
  543. package/dist/types/components/codeblock/codeblock_constants.d.ts +9 -0
  544. package/dist/types/components/codeblock/codeblock_constants.d.ts.map +1 -0
  545. package/dist/types/components/collapsible/collapsible.vue.d.ts +53 -7
  546. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  547. package/dist/types/components/combobox/combobox.vue.d.ts +109 -34
  548. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  549. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +40 -7
  550. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  551. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +64 -22
  552. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  553. package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts +16 -13
  554. package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
  555. package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts +388 -82
  556. package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  557. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  558. package/dist/types/components/dropdown/dropdown.vue.d.ts +170 -14
  559. package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  560. package/dist/types/components/emoji/emoji.vue.d.ts +24 -15
  561. package/dist/types/components/emoji_picker/emoji_picker.vue.d.ts +196 -6
  562. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts +196 -6
  563. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  564. package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  565. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +24 -15
  566. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  567. package/dist/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  568. package/dist/types/components/empty_state/empty_state_constants.d.ts +52 -31
  569. package/dist/types/components/empty_state/empty_state_constants.d.ts.map +1 -1
  570. package/dist/types/components/filter_pill/filter_pill.vue.d.ts +4487 -0
  571. package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  572. package/dist/types/components/filter_pill/index.d.ts +2 -0
  573. package/dist/types/components/filter_pill/index.d.ts.map +1 -0
  574. package/dist/types/components/hovercard/hovercard.vue.d.ts +368 -29
  575. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  576. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +131 -14
  577. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  578. package/dist/types/components/input/input.vue.d.ts +187 -5
  579. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  580. package/dist/types/components/input/input_constants.d.ts +44 -46
  581. package/dist/types/components/input/input_constants.d.ts.map +1 -1
  582. package/dist/types/components/input_group/input_group.vue.d.ts +138 -0
  583. package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
  584. package/dist/types/components/item_layout/item_layout.vue.d.ts +37 -6
  585. package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
  586. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +138 -0
  587. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  588. package/dist/types/components/link/link.vue.d.ts +9 -0
  589. package/dist/types/components/list_item/list_item.vue.d.ts +40 -7
  590. package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
  591. package/dist/types/components/modal/modal.vue.d.ts +271 -16
  592. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  593. package/dist/types/components/mode_island/index.d.ts +3 -0
  594. package/dist/types/components/mode_island/index.d.ts.map +1 -0
  595. package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
  596. package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
  597. package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
  598. package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
  599. package/dist/types/components/mode_island/utils.d.ts +12 -0
  600. package/dist/types/components/mode_island/utils.d.ts.map +1 -0
  601. package/dist/types/components/mode_island/validators.d.ts +6 -0
  602. package/dist/types/components/mode_island/validators.d.ts.map +1 -0
  603. package/dist/types/components/motion_text/motion_text_constants.d.ts +27 -23
  604. package/dist/types/components/motion_text/motion_text_constants.d.ts.map +1 -1
  605. package/dist/types/components/notice/notice.vue.d.ts +246 -15
  606. package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
  607. package/dist/types/components/notice/notice_action.vue.d.ts +106 -14
  608. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  609. package/dist/types/components/notice/notice_content.vue.d.ts +140 -1
  610. package/dist/types/components/notice/notice_content.vue.d.ts.map +1 -1
  611. package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  612. package/dist/types/components/pagination/pagination.vue.d.ts +53 -7
  613. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  614. package/dist/types/components/popover/popover.vue.d.ts +159 -14
  615. package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
  616. package/dist/types/components/popover/popover_header_footer.vue.d.ts +62 -7
  617. package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  618. package/dist/types/components/radio/radio.vue.d.ts +173 -0
  619. package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
  620. package/dist/types/components/radio_group/radio_group.vue.d.ts +138 -0
  621. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
  622. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  623. package/dist/types/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  624. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +24 -15
  625. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +24 -15
  626. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
  627. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +209 -25
  628. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  629. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +140 -1
  630. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  631. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +40 -7
  632. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  633. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +399 -26
  634. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  635. package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
  636. package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
  637. package/dist/types/components/segmented_control/index.d.ts +4 -0
  638. package/dist/types/components/segmented_control/index.d.ts.map +1 -0
  639. package/dist/types/components/segmented_control/segmented_control.vue.d.ts +224 -0
  640. package/dist/types/components/segmented_control/segmented_control.vue.d.ts.map +1 -0
  641. package/dist/types/components/segmented_control/segmented_control_constants.d.ts +41 -0
  642. package/dist/types/components/segmented_control/segmented_control_constants.d.ts.map +1 -0
  643. package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts +35 -0
  644. package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts.map +1 -0
  645. package/dist/types/components/select_menu/select_menu.vue.d.ts +182 -18
  646. package/dist/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
  647. package/dist/types/components/select_menu/select_menu_constants.d.ts +12 -7
  648. package/dist/types/components/select_menu/select_menu_constants.d.ts.map +1 -1
  649. package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +13 -10
  650. package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -0
  651. package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  652. package/dist/types/components/skeleton/skeleton-text.vue.d.ts +3 -0
  653. package/dist/types/components/skeleton/skeleton.vue.d.ts +24 -15
  654. package/dist/types/components/skeleton/skeleton_constants.d.ts +18 -13
  655. package/dist/types/components/skeleton/skeleton_constants.d.ts.map +1 -1
  656. package/dist/types/components/split_button/{split_button-omega.vue.d.ts → split_button-end.vue.d.ts} +64 -13
  657. package/dist/types/components/split_button/{split_button-omega.vue.d.ts.map → split_button-end.vue.d.ts.map} +1 -1
  658. package/dist/types/components/split_button/{split_button-alpha.vue.d.ts → split_button-start.vue.d.ts} +125 -11
  659. package/dist/types/components/split_button/split_button-start.vue.d.ts.map +1 -0
  660. package/dist/types/components/split_button/split_button.vue.d.ts +589 -66
  661. package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
  662. package/dist/types/components/split_button/split_button_constants.d.ts +12 -7
  663. package/dist/types/components/split_button/split_button_constants.d.ts.map +1 -1
  664. package/dist/types/components/stack/stack_constants.d.ts.map +1 -1
  665. package/dist/types/components/tab/index.d.ts +1 -1
  666. package/dist/types/components/tab/tab.vue.d.ts +85 -11
  667. package/dist/types/components/tab/tab.vue.d.ts.map +1 -1
  668. package/dist/types/components/tab/tab_group.vue.d.ts +91 -5
  669. package/dist/types/components/tab/tab_group.vue.d.ts.map +1 -1
  670. package/dist/types/components/tab/tabs_constants.d.ts +23 -5
  671. package/dist/types/components/tab/tabs_constants.d.ts.map +1 -1
  672. package/dist/types/components/text/index.d.ts +3 -0
  673. package/dist/types/components/text/index.d.ts.map +1 -0
  674. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
  675. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
  676. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
  677. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
  678. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
  679. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
  680. package/dist/types/components/text/text.vue.d.ts +141 -0
  681. package/dist/types/components/text/text.vue.d.ts.map +1 -0
  682. package/dist/types/components/text/text_constants.d.ts +82 -0
  683. package/dist/types/components/text/text_constants.d.ts.map +1 -0
  684. package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
  685. package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
  686. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +246 -15
  687. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  688. package/dist/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  689. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +246 -15
  690. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  691. package/dist/types/components/toast/toast.vue.d.ts +1033 -109
  692. package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
  693. package/dist/types/components/toggle/toggle.vue.d.ts +14 -6
  694. package/dist/types/components/toggle/toggle.vue.d.ts.map +1 -1
  695. package/dist/types/components/toggle/toggle_constants.d.ts +6 -4
  696. package/dist/types/components/toggle/toggle_constants.d.ts.map +1 -1
  697. package/dist/types/components/tooltip/tooltip.vue.d.ts +27 -1
  698. package/dist/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  699. package/dist/types/directives/mode_directive/index.d.ts +2 -0
  700. package/dist/types/directives/mode_directive/index.d.ts.map +1 -0
  701. package/dist/types/directives/mode_directive/mode.d.ts +6 -0
  702. package/dist/types/directives/mode_directive/mode.d.ts.map +1 -0
  703. package/dist/types/directives/tooltip_directive/tooltip.d.ts.map +1 -1
  704. package/dist/types/index.d.ts +5 -0
  705. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +80 -8
  706. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  707. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +303 -29
  708. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  709. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +293 -30
  710. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  711. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +223 -21
  712. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  713. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +58 -12
  714. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  715. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +237 -28
  716. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  717. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +184 -21
  718. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  719. package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +53 -7
  720. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +223 -21
  721. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  722. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +212 -21
  723. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  724. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +128 -38
  725. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  726. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +90 -13
  727. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  728. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +111 -32
  729. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  730. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +90 -13
  731. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  732. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +218 -8
  733. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  734. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +617 -34
  735. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  736. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +218 -8
  737. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  738. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +53 -7
  739. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  740. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +108 -31
  741. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  742. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
  743. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  744. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +77 -22
  745. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  746. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +557 -64
  747. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  748. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +462 -24
  749. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  750. package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  751. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +462 -24
  752. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  753. package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  754. package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  755. package/package.json +6 -5
  756. package/dist/lib/split-button/split-button-alpha.cjs +0 -2
  757. package/dist/lib/split-button/split-button-alpha.cjs.map +0 -1
  758. package/dist/lib/split-button/split-button-alpha.js +0 -138
  759. package/dist/lib/split-button/split-button-alpha.js.map +0 -1
  760. package/dist/lib/split-button/split-button-omega.cjs +0 -2
  761. package/dist/lib/split-button/split-button-omega.cjs.map +0 -1
  762. package/dist/lib/split-button/split-button-omega.js.map +0 -1
  763. package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +0 -1
@@ -1,24 +1,50 @@
1
- import { openBlock as r, createElementBlock as n, createTextVNode as t, createElementVNode as c, toDisplayString as s } from "vue";
2
- import { _ as d } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
3
- const p = {
1
+ import { CODEBLOCK_SIZE_MAP as c, CODEBLOCK_SIZES as d } from "./codeblock-constants.js";
2
+ import { openBlock as s, createElementBlock as a, normalizeClass as t, createElementVNode as i, toDisplayString as l } from "vue";
3
+ import { _ as n } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
4
+ const _ = {
4
5
  compatConfig: { MODE: 3 },
5
6
  name: "DtCodeblock",
6
7
  props: {
8
+ /**
9
+ * The text to display in the codeblock.
10
+ */
7
11
  text: {
8
12
  type: String,
9
13
  required: !0
14
+ },
15
+ /**
16
+ * Whether to render as a styled container block.
17
+ */
18
+ bordered: {
19
+ type: Boolean,
20
+ default: !1
21
+ },
22
+ /**
23
+ * Font size of the code block.
24
+ * @values 100, 200, 300, 400
25
+ */
26
+ size: {
27
+ type: [String, Number],
28
+ default: 200,
29
+ validator: (e) => d.includes(String(e))
30
+ }
31
+ },
32
+ computed: {
33
+ sizeClass() {
34
+ return c[String(this.size)] || String(this.size);
10
35
  }
11
36
  }
12
- }, l = { class: "d-codeblock" };
13
- function i(a, e, o, m, f, u) {
14
- return r(), n("pre", null, [
15
- e[0] || (e[0] = t(" ", -1)),
16
- c("code", l, s(o.text), 1),
17
- e[1] || (e[1] = t(`
18
- `, -1))
19
- ]);
37
+ };
38
+ function m(e, p, o, f, u, r) {
39
+ return s(), a("pre", {
40
+ class: t(["d-codeblock", { "d-codeblock--bordered": o.bordered }])
41
+ }, [
42
+ i("code", {
43
+ class: t(["d-codeblock__code", `d-codeblock__code--${r.sizeClass}`])
44
+ }, l(o.text), 3)
45
+ ], 2);
20
46
  }
21
- const k = /* @__PURE__ */ d(p, [["render", i]]);
47
+ const k = /* @__PURE__ */ n(_, [["render", m]]);
22
48
  export {
23
49
  k as default
24
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"codeblock.js","sources":["../../../components/codeblock/codeblock.vue"],"sourcesContent":["<template>\n <pre>\n <code\n class=\"d-codeblock\"\n >{{ text }}</code>\n </pre>\n</template>\n\n<script>\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCodeblock',\n\n props: {\n text: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n"],"names":["_sfc_main","_hoisted_1","_createElementBlock","_createElementVNode","_toDisplayString","$props"],"mappings":";;AASA,MAAKA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM;EACtB,MAAM;AAAA,EAEN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA;;AAGhB,GAhBMC,IAAA,EAAA,OAAM,cAAa;;cAFvBC,EAIM,OAAA,MAAA;AAAA,sBAJD,QACH,EAAA;AAAA,IAAAC,EAEkB,QAFlBF,GAEkBG,EAAdC,EAAA,IAAI,GAAA,CAAA;AAAA,sBAAU;AAAA,KACpB,EAAA;AAAA;;;"}
1
+ {"version":3,"file":"codeblock.js","sources":["../../../components/codeblock/codeblock.vue"],"sourcesContent":["<template>\n <pre\n class=\"d-codeblock\"\n :class=\"{ 'd-codeblock--bordered': bordered }\"\n ><code\n class=\"d-codeblock__code\"\n :class=\"`d-codeblock__code--${sizeClass}`\"\n >{{ text }}</code></pre> <!-- this must be a single line -->\n</template>\n\n<script>\nimport { CODEBLOCK_SIZES, CODEBLOCK_SIZE_MAP } from './codeblock_constants';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCodeblock',\n\n props: {\n /**\n * The text to display in the codeblock.\n */\n text: {\n type: String,\n required: true,\n },\n\n /**\n * Whether to render as a styled container block.\n */\n bordered: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Font size of the code block.\n * @values 100, 200, 300, 400\n */\n size: {\n type: [String, Number],\n default: 200,\n validator: (val) => CODEBLOCK_SIZES.includes(String(val)),\n },\n },\n\n computed: {\n sizeClass () {\n return CODEBLOCK_SIZE_MAP[String(this.size)] || String(this.size);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","val","CODEBLOCK_SIZES","CODEBLOCK_SIZE_MAP","_createElementBlock","_normalizeClass","$props","_createElementVNode","$options"],"mappings":";;;AAaA,MAAKA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM;EACtB,MAAM;AAAA,EAEN,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA;;;;IAMZ,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOX,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,MACT,WAAW,CAACC,MAAQC,EAAgB,SAAS,OAAOD,CAAG,CAAC;AAAA;;EAI5D,UAAU;AAAA,IACR,YAAa;AACX,aAAOE,EAAmB,OAAO,KAAK,IAAI,CAAC,KAAK,OAAO,KAAK,IAAI;AAAA,IAClE;AAAA;AAEJ;;cAjDEC,EAMwB,OAAA;AAAA,IALtB,OAAKC,EAAA,CAAC,eAAa,EAAA,yBACgBC,EAAA,UAAQ,CAAA;AAAA;IAC5CC,EAGiB,QAAA;AAAA,MAFhB,OAAKF,EAAA,CAAC,qBAAmB,sBACKG,EAAA,SAAS,EAAA,CAAA;AAAA,SACrCF,EAAA,IAAI,GAAA,CAAA;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../common/utils/index.cjs"),h=require("./collapsible-lazy-show.cjs"),i=require("@dialpad/dialtone-icons/vue3"),e=require("vue"),u=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),p=require("../lazy-show/lazy-show.cjs"),m=require("../button/button.cjs"),_={compatConfig:{MODE:3},name:"DtCollapsible",components:{DtButton:m.default,DtCollapsibleLazyShow:h.default,DtLazyShow:p.default,DtIconChevronDown:i.DtIconChevronDown,DtIconChevronRight:i.DtIconChevronRight},props:{anchorText:{type:String,default:null},open:{type:Boolean,default:null},id:{type:String,default(){return a.getUniqueString()}},elementType:{type:String,default:"div"},contentElementType:{type:String,default:"div"},anchorClass:{type:[String,Array,Object],default:null},contentClass:{type:[String,Array,Object],default:null},maxWidth:{type:String,default:null},maxHeight:{type:String,default:null},ariaLabel:{type:String,default:null},ariaLabelledBy:{type:String,default:null}},emits:["update:open","opened"],data(){return{isOpen:!0}},computed:{labelledBy(){return this.ariaLabelledBy||!this.ariaLabel&&a.getUniqueString("DtCollapsible__anchor")},collapsibleListeners(){return a.extractVueListeners(this.$attrs)}},watch:{open:{handler:function(l){l!==null&&(this.isOpen=l)},immediate:!0}},created(){this.validateProperAnchor()},methods:{onLeaveTransitionComplete(){this.$emit("opened",!1),this.open!==null&&this.$emit("update:open",!1)},onEnterTransitionComplete(){this.$emit("opened",!0,this.$refs.content),this.open!==null&&this.$emit("update:open",!0)},defaultToggleOpen(){this.open===null&&this.toggleOpen()},toggleOpen(){this.isOpen=!this.isOpen},validateProperAnchor(){!this.anchorText&&!a.hasSlotContent(this.$slots.anchor)&&console.error("anchor text and anchor slot content cannot both be falsy")}}},b=["id"],y=["title"];function f(l,C,t,v,o,n){const r=e.resolveComponent("dt-icon-chevron-down"),s=e.resolveComponent("dt-icon-chevron-right"),c=e.resolveComponent("dt-button"),d=e.resolveComponent("dt-collapsible-lazy-show");return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.elementType),e.mergeProps({ref:"collapsible"},e.toHandlers(n.collapsibleListeners)),{default:e.withCtx(()=>[e.createElementVNode("div",{id:!t.ariaLabelledBy&&n.labelledBy,ref:"anchor",class:e.normalizeClass(t.anchorClass)},[e.renderSlot(l.$slots,"anchor",{attrs:{"aria-controls":t.id,"aria-expanded":o.isOpen.toString(),role:"button"}},()=>[e.createVNode(c,{importance:"clear",kind:"muted","aria-controls":t.id,"aria-expanded":`${o.isOpen}`,style:e.normalizeStyle({width:t.maxWidth}),onClick:n.defaultToggleOpen},{default:e.withCtx(()=>[o.isOpen?(e.openBlock(),e.createBlock(r,{key:0,class:"d-collapsible__icon",size:"300"})):(e.openBlock(),e.createBlock(s,{key:1,class:"d-collapsible__icon",size:"300"})),e.createElementVNode("span",{class:"d-collapsible__anchor-text",title:t.anchorText},e.toDisplayString(t.anchorText),9,y)]),_:1},8,["aria-controls","aria-expanded","style","onClick"])])],10,b),e.createVNode(d,e.mergeProps({id:t.id,ref:"contentWrapper","aria-hidden":`${!o.isOpen}`,"aria-labelledby":n.labelledBy,"aria-label":t.ariaLabel,show:o.isOpen,"element-type":t.contentElementType,class:t.contentClass,style:{"max-height":t.maxHeight,"max-width":t.maxWidth},"data-qa":"dt-collapsible--content",tabindex:"-1",appear:""},e.toHandlers(n.collapsibleListeners),{onAfterLeave:n.onLeaveTransitionComplete,onAfterEnter:n.onEnterTransitionComplete}),{default:e.withCtx(()=>[e.renderSlot(l.$slots,"content")]),_:3},16,["id","aria-hidden","aria-labelledby","aria-label","show","element-type","class","style","onAfterLeave","onAfterEnter"])]),_:3},16)}const g=u._(_,[["render",f]]);exports.default=g;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../common/utils/index.cjs"),h=require("./collapsible-lazy-show.cjs"),i=require("@dialpad/dialtone-icons/vue"),e=require("vue"),u=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),p=require("../lazy-show/lazy-show.cjs"),m=require("../button/button.cjs"),_={compatConfig:{MODE:3},name:"DtCollapsible",components:{DtButton:m.default,DtCollapsibleLazyShow:h.default,DtLazyShow:p.default,DtIconChevronDown:i.DtIconChevronDown,DtIconChevronRight:i.DtIconChevronRight},props:{anchorText:{type:String,default:null},open:{type:Boolean,default:null},id:{type:String,default(){return a.getUniqueString()}},elementType:{type:String,default:"div"},contentElementType:{type:String,default:"div"},anchorClass:{type:[String,Array,Object],default:null},contentClass:{type:[String,Array,Object],default:null},maxWidth:{type:String,default:null},maxHeight:{type:String,default:null},ariaLabel:{type:String,default:null},ariaLabelledBy:{type:String,default:null}},emits:["update:open","opened"],data(){return{isOpen:!0}},computed:{labelledBy(){return this.ariaLabelledBy||!this.ariaLabel&&a.getUniqueString("DtCollapsible__anchor")},collapsibleListeners(){return a.extractVueListeners(this.$attrs)}},watch:{open:{handler:function(l){l!==null&&(this.isOpen=l)},immediate:!0}},created(){this.validateProperAnchor()},methods:{onLeaveTransitionComplete(){this.$emit("opened",!1),this.open!==null&&this.$emit("update:open",!1)},onEnterTransitionComplete(){this.$emit("opened",!0,this.$refs.content),this.open!==null&&this.$emit("update:open",!0)},defaultToggleOpen(){this.open===null&&this.toggleOpen()},toggleOpen(){this.isOpen=!this.isOpen},validateProperAnchor(){!this.anchorText&&!a.hasSlotContent(this.$slots.anchor)&&console.error("anchor text and anchor slot content cannot both be falsy")}}},b=["id"],y=["title"];function f(l,C,t,v,o,n){const r=e.resolveComponent("dt-icon-chevron-down"),s=e.resolveComponent("dt-icon-chevron-right"),c=e.resolveComponent("dt-button"),d=e.resolveComponent("dt-collapsible-lazy-show");return e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.elementType),e.mergeProps({ref:"collapsible"},e.toHandlers(n.collapsibleListeners)),{default:e.withCtx(()=>[e.createElementVNode("div",{id:!t.ariaLabelledBy&&n.labelledBy,ref:"anchor",class:e.normalizeClass(t.anchorClass)},[e.renderSlot(l.$slots,"anchor",{attrs:{"aria-controls":t.id,"aria-expanded":o.isOpen.toString(),role:"button"}},()=>[e.createVNode(c,{importance:"clear",kind:"muted","aria-controls":t.id,"aria-expanded":`${o.isOpen}`,style:e.normalizeStyle({width:t.maxWidth}),onClick:n.defaultToggleOpen},{default:e.withCtx(()=>[o.isOpen?(e.openBlock(),e.createBlock(r,{key:0,class:"d-collapsible__icon",size:"300"})):(e.openBlock(),e.createBlock(s,{key:1,class:"d-collapsible__icon",size:"300"})),e.createElementVNode("span",{class:"d-collapsible__anchor-text",title:t.anchorText},e.toDisplayString(t.anchorText),9,y)]),_:1},8,["aria-controls","aria-expanded","style","onClick"])])],10,b),e.createVNode(d,e.mergeProps({id:t.id,ref:"contentWrapper","aria-hidden":`${!o.isOpen}`,"aria-labelledby":n.labelledBy,"aria-label":t.ariaLabel,show:o.isOpen,"element-type":t.contentElementType,class:t.contentClass,style:{"max-height":t.maxHeight,"max-width":t.maxWidth},"data-qa":"dt-collapsible--content",tabindex:"-1",appear:""},e.toHandlers(n.collapsibleListeners),{onAfterLeave:n.onLeaveTransitionComplete,onAfterEnter:n.onEnterTransitionComplete}),{default:e.withCtx(()=>[e.renderSlot(l.$slots,"content")]),_:3},16,["id","aria-hidden","aria-labelledby","aria-label","show","element-type","class","style","onAfterLeave","onAfterEnter"])]),_:3},16)}const g=u._(_,[["render",f]]);exports.default=g;
2
2
  //# sourceMappingURL=collapsible.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.cjs","sources":["../../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon-chevron-down\n v-if=\"isOpen\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <dt-icon-chevron-right\n v-else\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIconChevronDown, DtIconChevronRight } from '@dialpad/dialtone-icons/vue3';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIconChevronDown,\n DtIconChevronRight,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtCollapsibleLazyShow","DtLazyShow","DtIconChevronDown","DtIconChevronRight","getUniqueString","extractVueListeners","open","hasSlotContent","_createBlock","_resolveDynamicComponent","$props","_mergeProps","_toHandlers","$options","_createElementVNode","_renderSlot","_ctx","$data","_createVNode","_component_dt_button","_normalizeStyle","_component_dt_icon_chevron_down","_component_dt_icon_chevron_right","_hoisted_2","_component_dt_collapsible_lazy_show"],"mappings":"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"}
1
+ {"version":3,"file":"collapsible.cjs","sources":["../../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon-chevron-down\n v-if=\"isOpen\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <dt-icon-chevron-right\n v-else\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIconChevronDown, DtIconChevronRight } from '@dialpad/dialtone-icons/vue';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIconChevronDown,\n DtIconChevronRight,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtCollapsibleLazyShow","DtLazyShow","DtIconChevronDown","DtIconChevronRight","getUniqueString","extractVueListeners","open","hasSlotContent","_createBlock","_resolveDynamicComponent","$props","_mergeProps","_toHandlers","$options","_createElementVNode","_renderSlot","_ctx","$data","_createVNode","_component_dt_button","_normalizeStyle","_component_dt_icon_chevron_down","_component_dt_icon_chevron_right","_hoisted_2","_component_dt_collapsible_lazy_show"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { hasSlotContent as b, extractVueListeners as g, getUniqueString as s } from "../../common/utils/index.js";
2
2
  import C from "./collapsible-lazy-show.js";
3
- import { DtIconChevronRight as x, DtIconChevronDown as S } from "@dialpad/dialtone-icons/vue3";
3
+ import { DtIconChevronRight as x, DtIconChevronDown as S } from "@dialpad/dialtone-icons/vue";
4
4
  import { resolveComponent as a, openBlock as o, createBlock as i, resolveDynamicComponent as v, mergeProps as c, toHandlers as d, withCtx as r, createElementVNode as h, normalizeClass as L, renderSlot as p, createVNode as m, normalizeStyle as O, toDisplayString as T } from "vue";
5
5
  import { _ as w } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
6
6
  import D from "../lazy-show/lazy-show.js";
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.js","sources":["../../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon-chevron-down\n v-if=\"isOpen\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <dt-icon-chevron-right\n v-else\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIconChevronDown, DtIconChevronRight } from '@dialpad/dialtone-icons/vue3';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIconChevronDown,\n DtIconChevronRight,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtCollapsibleLazyShow","DtLazyShow","DtIconChevronDown","DtIconChevronRight","getUniqueString","extractVueListeners","open","hasSlotContent","_createBlock","_resolveDynamicComponent","$props","_mergeProps","_toHandlers","$options","_createElementVNode","_renderSlot","_ctx","$data","_createVNode","_component_dt_button","_normalizeStyle","_component_dt_icon_chevron_down","_component_dt_icon_chevron_right","_hoisted_2","_component_dt_collapsible_lazy_show"],"mappings":"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"}
1
+ {"version":3,"file":"collapsible.js","sources":["../../../components/collapsible/collapsible.vue"],"sourcesContent":["<template>\n <component\n :is=\"elementType\"\n ref=\"collapsible\"\n v-on=\"collapsibleListeners\"\n >\n <!-- Element for capturing keypress events -->\n <div\n :id=\"!ariaLabelledBy && labelledBy\"\n ref=\"anchor\"\n :class=\"anchorClass\"\n >\n <!-- @slot Slot for the anchor element that toggles the collapsible content -->\n <slot\n name=\"anchor\"\n :attrs=\"{\n 'aria-controls': id,\n 'aria-expanded': isOpen.toString(),\n 'role': 'button',\n }\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :aria-controls=\"id\"\n :aria-expanded=\"`${isOpen}`\"\n :style=\"{\n 'width': maxWidth,\n }\"\n @click=\"defaultToggleOpen\"\n >\n <dt-icon-chevron-down\n v-if=\"isOpen\"\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <dt-icon-chevron-right\n v-else\n class=\"d-collapsible__icon\"\n size=\"300\"\n />\n <span\n class=\"d-collapsible__anchor-text\"\n :title=\"anchorText\"\n >\n {{ anchorText }}\n </span>\n </dt-button>\n </slot>\n </div>\n <dt-collapsible-lazy-show\n :id=\"id\"\n ref=\"contentWrapper\"\n :aria-hidden=\"`${!isOpen}`\"\n :aria-labelledby=\"labelledBy\"\n :aria-label=\"ariaLabel\"\n :show=\"isOpen\"\n :element-type=\"contentElementType\"\n :class=\"contentClass\"\n :style=\"{\n 'max-height': maxHeight,\n 'max-width': maxWidth,\n }\"\n data-qa=\"dt-collapsible--content\"\n tabindex=\"-1\"\n appear\n v-on=\"collapsibleListeners\"\n @after-leave=\"onLeaveTransitionComplete\"\n @after-enter=\"onEnterTransitionComplete\"\n >\n <!-- @slot Slot for the collapsible element that is expanded by the anchor -->\n <slot\n name=\"content\"\n />\n </dt-collapsible-lazy-show>\n </component>\n</template>\n\n<script>\nimport { extractVueListeners, getUniqueString, hasSlotContent } from '@/common/utils';\nimport DtCollapsibleLazyShow from './collapsible_lazy_show.vue';\nimport { DtButton } from '@/components/button';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { DtIconChevronDown, DtIconChevronRight } from '@dialpad/dialtone-icons/vue';\n\n/**\n * A collapsible is a component consisting of an interactive anchor that toggled the expandable/collapsible element.\n * @see https://dialtone.dialpad.com/components/collapsible.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCollapsible',\n\n components: {\n DtButton,\n DtCollapsibleLazyShow,\n DtLazyShow,\n DtIconChevronDown,\n DtIconChevronRight,\n },\n\n props: {\n /**\n * Text that is displayed on the anchor if nothing is passed in the slot.\n * Ignored if the anchor slot is used.\n */\n anchorText: {\n type: String,\n default: null,\n },\n\n /**\n * Controls whether the collapsible is shown. Leaving this null will have the collapsible start\n * expanded and trigger on click by default. If you set this value, the default trigger\n * behavior will be disabled, and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n open: {\n type: Boolean,\n default: null,\n },\n\n /**\n * The id of the content wrapper.\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * HTML element type (tag name) of the root element of the component.\n */\n elementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * HTML element type (tag name) of the content wrapper element.\n */\n contentElementType: {\n type: String,\n default: 'div',\n },\n\n /**\n * Additional class name for the anchor wrapper element.\n */\n anchorClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: null,\n },\n\n /**\n * The maximum width of the anchor and collapsible element.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: null,\n },\n\n /**\n * The maximum height of the collapsible element.\n * Possible units rem|px|%|em\n */\n maxHeight: {\n type: String,\n default: null,\n },\n\n /**\n * Label on the collapsible content. Should provide this or ariaLabelledBy but not both.\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Id of the element that labels the collapsible content. Defaults to the anchor element.\n * Should provide this or ariaLabel but not both.\n */\n ariaLabelledBy: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Event fired to sync the open prop with the parent component\n * @event update:open\n */\n 'update:open',\n\n /**\n * Event fired when the content is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n isOpen: true,\n };\n },\n\n computed: {\n labelledBy () {\n // aria-labelledby should be set only if aria-labelledby is passed as a prop, or if\n // there is no aria-label and the labelledby should point to the anchor\n return this.ariaLabelledBy || (!this.ariaLabel && getUniqueString('DtCollapsible__anchor'));\n },\n\n collapsibleListeners () {\n return extractVueListeners(this.$attrs);\n },\n },\n\n watch: {\n open: {\n handler: function (open) {\n if (open !== null) {\n this.isOpen = open;\n }\n },\n\n immediate: true,\n },\n },\n\n created () {\n this.validateProperAnchor();\n },\n\n methods: {\n onLeaveTransitionComplete () {\n this.$emit('opened', false);\n if (this.open !== null) {\n this.$emit('update:open', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('opened', true, this.$refs.content);\n if (this.open !== null) {\n this.$emit('update:open', true);\n }\n },\n\n defaultToggleOpen () {\n if (this.open === null) {\n this.toggleOpen();\n }\n },\n\n toggleOpen () {\n this.isOpen = !this.isOpen;\n },\n\n validateProperAnchor () {\n if (!this.anchorText && !hasSlotContent(this.$slots.anchor)) {\n console.error('anchor text and anchor slot content cannot both be falsy');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","DtCollapsibleLazyShow","DtLazyShow","DtIconChevronDown","DtIconChevronRight","getUniqueString","extractVueListeners","open","hasSlotContent","_createBlock","_resolveDynamicComponent","$props","_mergeProps","_toHandlers","$options","_createElementVNode","_renderSlot","_ctx","$data","_createVNode","_component_dt_button","_normalizeStyle","_component_dt_icon_chevron_down","_component_dt_icon_chevron_right","_hoisted_2","_component_dt_collapsible_lazy_show"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./combobox-loading-list.cjs"),g=require("./combobox-empty-list.cjs"),l=require("../../common/utils/index.cjs"),e=require("vue"),u=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),m=require("./combobox-constants.cjs"),p=require("../../common/mixins/keyboard-list-navigation.cjs"),y={compatConfig:{MODE:3},name:"DtCombobox",components:{ComboboxLoadingList:a.default,ComboboxEmptyList:g.default},mixins:[p.default({indexKey:"highlightIndex",idKey:"highlightId",listElementKey:"getListElement",afterHighlightMethod:"afterHighlight",beginningOfListMethod:"beginningOfListMethod",endOfListMethod:"endOfListMethod",activeItemKey:"activeItemEl"})],props:{label:{type:String,required:!0},labelVisible:{type:Boolean,default:!0},size:{type:String,default:null,validator:i=>Object.values(m.COMBOBOX_LABEL_SIZES).includes(i)},description:{type:String,default:""},listId:{type:String,default(){return l.getUniqueString()}},onBeginningOfList:{type:Function,default:null},onEndOfList:{type:Function,default:null},showList:{type:Boolean,default:!1},listRenderedOutside:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},emptyList:{type:Boolean,default:!1},emptyStateMessage:{type:String,default:""},emptyStateClass:{type:[String,Object,Array],default:""},clickOnSelect:{type:Boolean,default:!1}},emits:["select","escape","highlight","opened"],data(){return{outsideRenderedListRef:null,hasSlotContent:l.hasSlotContent}},computed:{inputProps(){return{label:this.label,labelVisible:this.labelVisible,size:this.size,description:this.description,role:"combobox","aria-label":this.label,"aria-expanded":this.showList.toString(),"aria-owns":this.listId,"aria-haspopup":"listbox","aria-activedescendant":this.activeItemId,"aria-controls":this.listId}},listProps(){return{role:"listbox",id:this.listId,class:"d-ps-relative","aria-label":this.label}},beginningOfListMethod(){return this.onBeginningOfList||this.jumpToEnd},endOfListMethod(){return this.onEndOfList||this.jumpToBeginning},activeItemId(){if(!(!this.showList||this.highlightIndex<0||this.loading))return this.highlightId},activeItemEl(){return this.highlightId?this.getListElement().querySelector("#"+this.highlightId):""}},watch:{showList(i){this.listRenderedOutside||(this.setInitialHighlightIndex(),this.$emit("opened",i)),!i&&this.outsideRenderedListRef&&(this.outsideRenderedListRef.removeEventListener("mousemove",this.onMouseHighlight),this.outsideRenderedListRef=null)},loading(){this.$nextTick(()=>{this.setInitialHighlightIndex()})},$props:{deep:!0,immediate:!0,handler(){this.validateEmptyListProps()}}},created(){this.validateEmptyListProps()},methods:{onMouseHighlight(i){if(this.loading)return;const t=i.target.closest("li");t&&this.highlightId!==t.id&&this.setHighlightId(t.id)},getListElement(){var i;return this.outsideRenderedListRef??((i=this.$refs.listWrapper)==null?void 0:i.querySelector(`#${this.listId}`))},clearHighlightIndex(){this.showList&&this.setHighlightIndex(-1)},afterHighlight(){this.loading||this.$emit("highlight",this.highlightIndex)},onEnterKey(){var i;this.loading||this.emptyList||this.highlightIndex>=0&&(this.$emit("select",this.highlightIndex),this.clickOnSelect&&((i=this.activeItemEl)==null||i.click()))},onEscapeKey(){this.$emit("escape")},onOpen(i,t){var n;this.outsideRenderedListRef=t,(n=this.outsideRenderedListRef)==null||n.addEventListener("mousemove",this.onMouseHighlight),this.$emit("opened",i),i&&this.setInitialHighlightIndex()},onKeyValidation(i,t){!this.showList||!this.getListElement()||this[t](i)},setInitialHighlightIndex(){this.showList&&this.$nextTick(()=>{this.setHighlightIndex(this.loading?-1:0)})},validateEmptyListProps(){this.$slots.emptyListItem||this.emptyList&&!this.emptyStateMessage&&console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the
2
- empty message.`)}}},f={"data-qa":"dt-combobox-input-wrapper"};function c(i,t,n,L,r,s){const d=e.resolveComponent("combobox-loading-list"),h=e.resolveComponent("combobox-empty-list");return e.openBlock(),e.createElementBlock("div",{onKeydown:[t[3]||(t[3]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onEscapeKey"),["stop"]),["esc"])),t[4]||(t[4]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onEnterKey"),["exact"]),["enter"])),t[5]||(t[5]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onUpKey"),["stop","prevent"]),["up"])),t[6]||(t[6]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onDownKey"),["stop","prevent"]),["down"])),t[7]||(t[7]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onHomeKey"),["stop","prevent"]),["home"])),t[8]||(t[8]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onEndKey"),["stop","prevent"]),["end"]))]},[e.createElementVNode("div",f,[e.renderSlot(i.$slots,"input",{inputProps:s.inputProps})]),n.showList?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"listWrapper","data-qa":"dt-combobox-list-wrapper",onMouseleave:t[0]||(t[0]=(...o)=>s.clearHighlightIndex&&s.clearHighlightIndex(...o)),onFocusout:t[1]||(t[1]=(...o)=>s.clearHighlightIndex&&s.clearHighlightIndex(...o)),onMousemoveCapture:t[2]||(t[2]=(...o)=>s.onMouseHighlight&&s.onMouseHighlight(...o))},[n.loading&&!n.listRenderedOutside?(e.openBlock(),e.createBlock(d,e.normalizeProps(e.mergeProps({key:0},s.listProps)),null,16)):n.emptyList&&(n.emptyStateMessage||r.hasSlotContent(i.$slots.emptyListItem))&&!n.listRenderedOutside?(e.openBlock(),e.createBlock(h,e.mergeProps({key:1},s.listProps,{message:n.emptyStateMessage,"item-class":n.emptyStateClass}),{default:e.withCtx(()=>[e.renderSlot(i.$slots,"emptyListItem")]),_:3},16,["message","item-class"])):e.renderSlot(i.$slots,"list",{key:2,listProps:s.listProps,opened:s.onOpen,clearHighlightIndex:s.clearHighlightIndex})],544)):e.createCommentVNode("",!0)],32)}const b=u._(y,[["render",c]]);exports.default=b;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./combobox-loading-list.cjs"),g=require("./combobox-empty-list.cjs"),l=require("../../common/utils/index.cjs"),e=require("vue"),u=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),m=require("./combobox-constants.cjs"),p=require("../../common/constants/sizes.cjs"),y=require("../../common/mixins/keyboard-list-navigation.cjs"),c={compatConfig:{MODE:3},name:"DtCombobox",components:{ComboboxLoadingList:a.default,ComboboxEmptyList:g.default},mixins:[y.default({indexKey:"highlightIndex",idKey:"highlightId",listElementKey:"getListElement",afterHighlightMethod:"afterHighlight",beginningOfListMethod:"beginningOfListMethod",endOfListMethod:"endOfListMethod",activeItemKey:"activeItemEl"})],props:{label:{type:String,required:!0},labelVisible:{type:Boolean,default:!0},size:{type:[String,Number],default:null,validator:i=>i===null||Object.values(m.COMBOBOX_LABEL_SIZES).includes(i)||Object.keys(p.COMPONENT_SIZES).includes(String(i))},description:{type:String,default:""},listId:{type:String,default(){return l.getUniqueString()}},onBeginningOfList:{type:Function,default:null},onEndOfList:{type:Function,default:null},showList:{type:Boolean,default:!1},listRenderedOutside:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},emptyList:{type:Boolean,default:!1},emptyStateMessage:{type:String,default:""},emptyStateClass:{type:[String,Object,Array],default:""},clickOnSelect:{type:Boolean,default:!1}},emits:["select","escape","highlight","opened"],data(){return{outsideRenderedListRef:null,hasSlotContent:l.hasSlotContent}},computed:{inputProps(){return{label:this.label,labelVisible:this.labelVisible,size:this.size,description:this.description,role:"combobox","aria-label":this.label,"aria-expanded":this.showList.toString(),"aria-owns":this.listId,"aria-haspopup":"listbox","aria-activedescendant":this.activeItemId,"aria-controls":this.listId}},listProps(){return{role:"listbox",id:this.listId,class:"d-ps-relative","aria-label":this.label}},beginningOfListMethod(){return this.onBeginningOfList||this.jumpToEnd},endOfListMethod(){return this.onEndOfList||this.jumpToBeginning},activeItemId(){if(!(!this.showList||this.highlightIndex<0||this.loading))return this.highlightId},activeItemEl(){return this.highlightId?this.getListElement().querySelector("#"+this.highlightId):""}},watch:{showList(i){this.listRenderedOutside||(this.setInitialHighlightIndex(),this.$emit("opened",i)),!i&&this.outsideRenderedListRef&&(this.outsideRenderedListRef.removeEventListener("mousemove",this.onMouseHighlight),this.outsideRenderedListRef=null)},loading(){this.$nextTick(()=>{this.setInitialHighlightIndex()})},$props:{deep:!0,immediate:!0,handler(){this.validateEmptyListProps()}}},created(){this.validateEmptyListProps()},methods:{onMouseHighlight(i){if(this.loading)return;const t=i.target.closest("li");t&&this.highlightId!==t.id&&this.setHighlightId(t.id)},getListElement(){var i;return this.outsideRenderedListRef??((i=this.$refs.listWrapper)==null?void 0:i.querySelector(`#${this.listId}`))},clearHighlightIndex(){this.showList&&this.setHighlightIndex(-1)},afterHighlight(){this.loading||this.$emit("highlight",this.highlightIndex)},onEnterKey(){var i;this.loading||this.emptyList||this.highlightIndex>=0&&(this.$emit("select",this.highlightIndex),this.clickOnSelect&&((i=this.activeItemEl)==null||i.click()))},onEscapeKey(){this.$emit("escape")},onOpen(i,t){var n;this.outsideRenderedListRef=t,(n=this.outsideRenderedListRef)==null||n.addEventListener("mousemove",this.onMouseHighlight),this.$emit("opened",i),i&&this.setInitialHighlightIndex()},onKeyValidation(i,t){!this.showList||!this.getListElement()||this[t](i)},setInitialHighlightIndex(){this.showList&&this.$nextTick(()=>{this.setHighlightIndex(this.loading?-1:0)})},validateEmptyListProps(){this.$slots.emptyListItem||this.emptyList&&!this.emptyStateMessage&&console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the
2
+ empty message.`)}}},f={"data-qa":"dt-combobox-input-wrapper"};function b(i,t,n,I,r,s){const d=e.resolveComponent("combobox-loading-list"),h=e.resolveComponent("combobox-empty-list");return e.openBlock(),e.createElementBlock("div",{onKeydown:[t[3]||(t[3]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onEscapeKey"),["stop"]),["esc"])),t[4]||(t[4]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onEnterKey"),["exact"]),["enter"])),t[5]||(t[5]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onUpKey"),["stop","prevent"]),["up"])),t[6]||(t[6]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onDownKey"),["stop","prevent"]),["down"])),t[7]||(t[7]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onHomeKey"),["stop","prevent"]),["home"])),t[8]||(t[8]=e.withKeys(e.withModifiers(o=>s.onKeyValidation(o,"onEndKey"),["stop","prevent"]),["end"]))]},[e.createElementVNode("div",f,[e.renderSlot(i.$slots,"input",{inputProps:s.inputProps})]),n.showList?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"listWrapper","data-qa":"dt-combobox-list-wrapper",onMouseleave:t[0]||(t[0]=(...o)=>s.clearHighlightIndex&&s.clearHighlightIndex(...o)),onFocusout:t[1]||(t[1]=(...o)=>s.clearHighlightIndex&&s.clearHighlightIndex(...o)),onMousemoveCapture:t[2]||(t[2]=(...o)=>s.onMouseHighlight&&s.onMouseHighlight(...o))},[n.loading&&!n.listRenderedOutside?(e.openBlock(),e.createBlock(d,e.normalizeProps(e.mergeProps({key:0},s.listProps)),null,16)):n.emptyList&&(n.emptyStateMessage||r.hasSlotContent(i.$slots.emptyListItem))&&!n.listRenderedOutside?(e.openBlock(),e.createBlock(h,e.mergeProps({key:1},s.listProps,{message:n.emptyStateMessage,"item-class":n.emptyStateClass}),{default:e.withCtx(()=>[e.renderSlot(i.$slots,"emptyListItem")]),_:3},16,["message","item-class"])):e.renderSlot(i.$slots,"list",{key:2,listProps:s.listProps,opened:s.onOpen,clearHighlightIndex:s.clearHighlightIndex})],544)):e.createCommentVNode("",!0)],32)}const L=u._(c,[["render",b]]);exports.default=L;
3
3
  //# sourceMappingURL=combobox.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.cjs","sources":["../../../components/combobox/combobox.vue"],"sourcesContent":["<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { DtKeyboardListNavigationMixin } from '@/common/mixins';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { COMBOBOX_LABEL_SIZES } from '@/components/combobox';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n DtKeyboardListNavigationMixin({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n * @values true, false\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading () {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if (this.emptyList && !this.emptyStateMessage) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","ComboboxLoadingList","ComboboxEmptyList","DtKeyboardListNavigationMixin","t","COMBOBOX_LABEL_SIZES","getUniqueString","hasSlotContent","showList","e","liElement","_a","open","contentRef","eventHandler","_hoisted_1","_createElementBlock","_cache","_withKeys","_withModifiers","$event","$options","_createElementVNode","_renderSlot","_ctx","$props","args","_openBlock","_createBlock","_component_combobox_loading_list","$data","_component_combobox_empty_list","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.cjs","sources":["../../../components/combobox/combobox.vue"],"sourcesContent":["<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { DtKeyboardListNavigationMixin } from '@/common/mixins';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { COMPONENT_SIZES } from '@/common/constants';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n DtKeyboardListNavigationMixin({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: null,\n validator: (t) => t === null\n || Object.values(COMBOBOX_LABEL_SIZES).includes(t)\n || Object.keys(COMPONENT_SIZES).includes(String(t)),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n * @values true, false\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading () {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if (this.emptyList && !this.emptyStateMessage) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","ComboboxLoadingList","ComboboxEmptyList","DtKeyboardListNavigationMixin","t","COMBOBOX_LABEL_SIZES","COMPONENT_SIZES","getUniqueString","hasSlotContent","showList","e","liElement","_a","open","contentRef","eventHandler","_hoisted_1","_createElementBlock","_cache","_withKeys","_withModifiers","$event","$options","_createElementVNode","_renderSlot","_ctx","$props","args","_openBlock","_createBlock","_component_combobox_loading_list","$data","_component_combobox_empty_list","_mergeProps"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import y from "./combobox-loading-list.js";
2
2
  import I from "./combobox-empty-list.js";
3
- import { hasSlotContent as L, getUniqueString as b } from "../../common/utils/index.js";
4
- import { resolveComponent as h, openBlock as d, createElementBlock as a, withKeys as l, withModifiers as o, createElementVNode as c, renderSlot as r, createBlock as g, normalizeProps as x, mergeProps as m, withCtx as v, createCommentVNode as E } from "vue";
3
+ import { hasSlotContent as b, getUniqueString as c } from "../../common/utils/index.js";
4
+ import { resolveComponent as h, openBlock as r, createElementBlock as a, withKeys as l, withModifiers as o, createElementVNode as L, renderSlot as d, createBlock as g, normalizeProps as x, mergeProps as m, withCtx as v, createCommentVNode as E } from "vue";
5
5
  import { _ as O } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
6
6
  import { COMBOBOX_LABEL_SIZES as S } from "./combobox-constants.js";
7
- import H from "../../common/mixins/keyboard-list-navigation.js";
7
+ import { COMPONENT_SIZES as H } from "../../common/constants/sizes.js";
8
+ import M from "../../common/mixins/keyboard-list-navigation.js";
8
9
  const K = {
9
10
  compatConfig: { MODE: 3 },
10
11
  name: "DtCombobox",
@@ -13,7 +14,7 @@ const K = {
13
14
  ComboboxEmptyList: I
14
15
  },
15
16
  mixins: [
16
- H({
17
+ M({
17
18
  indexKey: "highlightIndex",
18
19
  idKey: "highlightId",
19
20
  listElementKey: "getListElement",
@@ -40,13 +41,13 @@ const K = {
40
41
  default: !0
41
42
  },
42
43
  /**
43
- * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
44
- * @values null, xs, sm, md, lg, xl
44
+ * Size of the input.
45
+ * @values 100, 200, 300, 400, 500
45
46
  */
46
47
  size: {
47
- type: String,
48
+ type: [String, Number],
48
49
  default: null,
49
- validator: (e) => Object.values(S).includes(e)
50
+ validator: (e) => e === null || Object.values(S).includes(e) || Object.keys(H).includes(String(e))
50
51
  },
51
52
  /**
52
53
  * Description for the input
@@ -62,7 +63,7 @@ const K = {
62
63
  listId: {
63
64
  type: String,
64
65
  default() {
65
- return b();
66
+ return c();
66
67
  }
67
68
  },
68
69
  /**
@@ -172,7 +173,7 @@ const K = {
172
173
  // of this component, this is the ref to that dom element. Set
173
174
  // by the onOpen method.
174
175
  outsideRenderedListRef: null,
175
- hasSlotContent: L
176
+ hasSlotContent: b
176
177
  };
177
178
  },
178
179
  computed: {
@@ -275,10 +276,10 @@ const K = {
275
276
  empty message.`);
276
277
  }
277
278
  }
278
- }, M = { "data-qa": "dt-combobox-input-wrapper" };
279
- function w(e, t, n, R, p, i) {
280
- const u = h("combobox-loading-list"), f = h("combobox-empty-list");
281
- return d(), a("div", {
279
+ }, w = { "data-qa": "dt-combobox-input-wrapper" };
280
+ function R(e, t, n, B, u, i) {
281
+ const p = h("combobox-loading-list"), f = h("combobox-empty-list");
282
+ return r(), a("div", {
282
283
  onKeydown: [
283
284
  t[3] || (t[3] = l(o((s) => i.onKeyValidation(s, "onEscapeKey"), ["stop"]), ["esc"])),
284
285
  t[4] || (t[4] = l(o((s) => i.onKeyValidation(s, "onEnterKey"), ["exact"]), ["enter"])),
@@ -288,10 +289,10 @@ function w(e, t, n, R, p, i) {
288
289
  t[8] || (t[8] = l(o((s) => i.onKeyValidation(s, "onEndKey"), ["stop", "prevent"]), ["end"]))
289
290
  ]
290
291
  }, [
291
- c("div", M, [
292
- r(e.$slots, "input", { inputProps: i.inputProps })
292
+ L("div", w, [
293
+ d(e.$slots, "input", { inputProps: i.inputProps })
293
294
  ]),
294
- n.showList ? (d(), a("div", {
295
+ n.showList ? (r(), a("div", {
295
296
  key: 0,
296
297
  ref: "listWrapper",
297
298
  "data-qa": "dt-combobox-list-wrapper",
@@ -299,15 +300,15 @@ function w(e, t, n, R, p, i) {
299
300
  onFocusout: t[1] || (t[1] = (...s) => i.clearHighlightIndex && i.clearHighlightIndex(...s)),
300
301
  onMousemoveCapture: t[2] || (t[2] = (...s) => i.onMouseHighlight && i.onMouseHighlight(...s))
301
302
  }, [
302
- n.loading && !n.listRenderedOutside ? (d(), g(u, x(m({ key: 0 }, i.listProps)), null, 16)) : n.emptyList && (n.emptyStateMessage || p.hasSlotContent(e.$slots.emptyListItem)) && !n.listRenderedOutside ? (d(), g(f, m({ key: 1 }, i.listProps, {
303
+ n.loading && !n.listRenderedOutside ? (r(), g(p, x(m({ key: 0 }, i.listProps)), null, 16)) : n.emptyList && (n.emptyStateMessage || u.hasSlotContent(e.$slots.emptyListItem)) && !n.listRenderedOutside ? (r(), g(f, m({ key: 1 }, i.listProps, {
303
304
  message: n.emptyStateMessage,
304
305
  "item-class": n.emptyStateClass
305
306
  }), {
306
307
  default: v(() => [
307
- r(e.$slots, "emptyListItem")
308
+ d(e.$slots, "emptyListItem")
308
309
  ]),
309
310
  _: 3
310
- }, 16, ["message", "item-class"])) : r(e.$slots, "list", {
311
+ }, 16, ["message", "item-class"])) : d(e.$slots, "list", {
311
312
  key: 2,
312
313
  listProps: i.listProps,
313
314
  opened: i.onOpen,
@@ -316,7 +317,7 @@ function w(e, t, n, R, p, i) {
316
317
  ], 544)) : E("", !0)
317
318
  ], 32);
318
319
  }
319
- const z = /* @__PURE__ */ O(K, [["render", w]]);
320
+ const z = /* @__PURE__ */ O(K, [["render", R]]);
320
321
  export {
321
322
  z as default
322
323
  };
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sources":["../../../components/combobox/combobox.vue"],"sourcesContent":["<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { DtKeyboardListNavigationMixin } from '@/common/mixins';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { COMBOBOX_LABEL_SIZES } from '@/components/combobox';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n DtKeyboardListNavigationMixin({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(COMBOBOX_LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n * @values true, false\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading () {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if (this.emptyList && !this.emptyStateMessage) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","ComboboxLoadingList","ComboboxEmptyList","DtKeyboardListNavigationMixin","t","COMBOBOX_LABEL_SIZES","getUniqueString","hasSlotContent","showList","liElement","_a","open","contentRef","eventHandler","_hoisted_1","_createElementBlock","_cache","_withKeys","_withModifiers","$event","$options","_createElementVNode","_renderSlot","_ctx","$props","args","_openBlock","_createBlock","_component_combobox_loading_list","$data","_component_combobox_empty_list","_mergeProps"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../components/combobox/combobox.vue"],"sourcesContent":["<!-- eslint-disable vuejs-accessibility/no-static-element-interactions -->\n<template>\n <div\n @keydown.esc.stop=\"onKeyValidation($event, 'onEscapeKey')\"\n @keydown.enter.exact=\"onKeyValidation($event, 'onEnterKey')\"\n @keydown.up.stop.prevent=\"onKeyValidation($event, 'onUpKey')\"\n @keydown.down.stop.prevent=\"onKeyValidation($event, 'onDownKey')\"\n @keydown.home.stop.prevent=\"onKeyValidation($event, 'onHomeKey')\"\n @keydown.end.stop.prevent=\"onKeyValidation($event, 'onEndKey')\"\n >\n <div data-qa=\"dt-combobox-input-wrapper\">\n <!-- @slot Slot for the combobox input element -->\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n />\n </div>\n\n <div\n v-if=\"showList\"\n ref=\"listWrapper\"\n data-qa=\"dt-combobox-list-wrapper\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n @mousemove.capture=\"onMouseHighlight\"\n >\n <combobox-loading-list\n v-if=\"loading && !listRenderedOutside\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && (emptyStateMessage || hasSlotContent($slots.emptyListItem)) && !listRenderedOutside\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n :item-class=\"emptyStateClass\"\n >\n <slot name=\"emptyListItem\" />\n </combobox-empty-list>\n <!-- @slot Slot for the combobox list element -->\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n :opened=\"onOpen\"\n :clear-highlight-index=\"clearHighlightIndex\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport ComboboxLoadingList from './combobox_loading-list.vue';\nimport ComboboxEmptyList from './combobox_empty-list.vue';\nimport { DtKeyboardListNavigationMixin } from '@/common/mixins';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { COMBOBOX_LABEL_SIZES } from '@/components/combobox';\nimport { COMPONENT_SIZES } from '@/common/constants';\n\n/**\n * A combobox is a semantic component that displays an input element combined with a listbox,\n * which enables the user to select items from the list.\n * @see https://dialtone.dialpad.com/components/combobox.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtCombobox',\n\n components: {\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [\n DtKeyboardListNavigationMixin({\n indexKey: 'highlightIndex',\n idKey: 'highlightId',\n listElementKey: 'getListElement',\n afterHighlightMethod: 'afterHighlight',\n beginningOfListMethod: 'beginningOfListMethod',\n endOfListMethod: 'endOfListMethod',\n activeItemKey: 'activeItemEl',\n }),\n ],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: null,\n validator: (t) => t === null\n || Object.values(COMBOBOX_LABEL_SIZES).includes(t)\n || Object.keys(COMPONENT_SIZES).includes(String(t)),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * @values true, false\n */\n showList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the list is rendered outside the component, like when using popover as the list wrapper.\n * @values true, false\n */\n listRenderedOutside: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n * @values true, false\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Additional class name for the empty list element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n emptyStateClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Programmatically click on the active list item element when a selection\n * comes from keyboard navigation, i.e. pressing the \"Enter\" key.\n * @values true, false\n */\n clickOnSelect: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when pressing escape\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when the highlight changes\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Event fired when list is shown or hidden\n *\n * @event opened\n * @type {Boolean}\n */\n 'opened',\n ],\n\n data () {\n return {\n // If the list is rendered at the root, rather than as a child\n // of this component, this is the ref to that dom element. Set\n // by the onOpen method.\n outsideRenderedListRef: null,\n hasSlotContent,\n };\n },\n\n computed: {\n inputProps () {\n return {\n label: this.label,\n labelVisible: this.labelVisible,\n size: this.size,\n description: this.description,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-expanded': this.showList.toString(),\n 'aria-owns': this.listId,\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': this.activeItemId,\n 'aria-controls': this.listId,\n };\n },\n\n listProps () {\n return {\n role: 'listbox',\n id: this.listId,\n // The list has to be positioned relatively so that the auto-scroll can\n // calculate the correct offset for the list items.\n class: 'd-ps-relative',\n 'aria-label': this.label,\n };\n },\n\n beginningOfListMethod () {\n return this.onBeginningOfList || this.jumpToEnd;\n },\n\n endOfListMethod () {\n return this.onEndOfList || this.jumpToBeginning;\n },\n\n activeItemId () {\n if (!this.showList || this.highlightIndex < 0 || this.loading) {\n return;\n }\n return this.highlightId;\n },\n\n activeItemEl () {\n if (!this.highlightId) return '';\n return this.getListElement().querySelector('#' + this.highlightId);\n },\n },\n\n watch: {\n showList (showList) {\n // When the list's visibility changes reset the highlight index.\n\n if (!this.listRenderedOutside) {\n this.setInitialHighlightIndex();\n this.$emit('opened', showList);\n }\n\n if (!showList && this.outsideRenderedListRef) {\n this.outsideRenderedListRef.removeEventListener('mousemove', this.onMouseHighlight);\n this.outsideRenderedListRef = null;\n }\n },\n\n loading () {\n this.$nextTick(() => {\n this.setInitialHighlightIndex();\n });\n },\n\n $props: {\n deep: true,\n immediate: true,\n handler () {\n this.validateEmptyListProps();\n },\n },\n },\n\n created () {\n this.validateEmptyListProps();\n },\n\n methods: {\n onMouseHighlight (e) {\n if (this.loading) return;\n\n const liElement = e.target.closest('li');\n\n if (liElement && this.highlightId !== liElement.id) {\n this.setHighlightId(liElement.id);\n }\n },\n\n getListElement () {\n return this.outsideRenderedListRef ?? this.$refs.listWrapper?.querySelector(`#${this.listId}`);\n },\n\n clearHighlightIndex () {\n if (this.showList) {\n this.setHighlightIndex(-1);\n }\n },\n\n afterHighlight () {\n if (this.loading) return;\n this.$emit('highlight', this.highlightIndex);\n },\n\n onEnterKey () {\n if (this.loading || this.emptyList) return;\n\n if (this.highlightIndex >= 0) {\n this.$emit('select', this.highlightIndex);\n\n if (this.clickOnSelect) {\n this.activeItemEl?.click();\n }\n }\n },\n\n onEscapeKey () {\n this.$emit('escape');\n },\n\n onOpen (open, contentRef) {\n this.outsideRenderedListRef = contentRef;\n this.outsideRenderedListRef?.addEventListener('mousemove', this.onMouseHighlight);\n this.$emit('opened', open);\n\n if (open) {\n this.setInitialHighlightIndex();\n }\n },\n\n onKeyValidation (e, eventHandler) {\n if (!this.showList || !this.getListElement()) return;\n\n this[eventHandler](e);\n },\n\n setInitialHighlightIndex () {\n if (!this.showList) return;\n this.$nextTick(() => {\n // When the list's is shown, reset the highlight index.\n // If the list is loading, set to -1\n this.setHighlightIndex(this.loading ? -1 : 0);\n });\n },\n\n validateEmptyListProps () {\n if (this.$slots.emptyListItem) { return; }\n\n if (this.emptyList && !this.emptyStateMessage) {\n console.error(`Invalid props: you must pass both props emptyList and emptyStateMessage to show the\n empty message.`);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","ComboboxLoadingList","ComboboxEmptyList","DtKeyboardListNavigationMixin","t","COMBOBOX_LABEL_SIZES","COMPONENT_SIZES","getUniqueString","hasSlotContent","showList","liElement","_a","open","contentRef","eventHandler","_hoisted_1","_createElementBlock","_cache","_withKeys","_withModifiers","$event","$options","_createElementVNode","_renderSlot","_ctx","$props","args","_openBlock","_createBlock","_component_combobox_loading_list","$data","_component_combobox_empty_list","_mergeProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s={EXTRA_SMALL:"xs",SMALL:"sm",DEFAULT:"md"},t={xs:"xs",sm:"xs",md:"sm"},S={xs:1.4,sm:.4,md:.2},_={MULTI_SELECT_SIZES:s,CHIP_SIZES:t,CHIP_TOP_POSITION:S};exports.CHIP_SIZES=t;exports.CHIP_TOP_POSITION=S;exports.MULTI_SELECT_SIZES=s;exports.default=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s={EXTRA_SMALL:"xs",SMALL:"sm",DEFAULT:"md"},t={100:"xs",200:"xs",300:"sm",xs:"xs",sm:"xs",md:"sm"},S={100:1.4,200:.4,300:.2,xs:1.4,sm:.4,md:.2},_={MULTI_SELECT_SIZES:s,CHIP_SIZES:t,CHIP_TOP_POSITION:S};exports.CHIP_SIZES=t;exports.CHIP_TOP_POSITION=S;exports.MULTI_SELECT_SIZES=s;exports.default=_;
2
2
  //# sourceMappingURL=combobox-multi-select-constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-multi-select-constants.cjs","sources":["../../../components/combobox_multi_select/combobox_multi_select_constants.js"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n"],"names":["MULTI_SELECT_SIZES","CHIP_SIZES","CHIP_TOP_POSITION","combobox_multi_select_constants"],"mappings":"4GAAY,MAACA,EAAqB,CAEhC,YAAa,KACb,MAAO,KACP,QAAS,IACX,EAEaC,EAAa,CACxB,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,EAEaC,EAAoB,CAC/B,GAAI,IACJ,GAAI,GACJ,GAAI,EACN,EAEAC,EAAe,CACb,mBAAAH,EACA,WAAAC,EACA,kBAAAC,CACF"}
1
+ {"version":3,"file":"combobox-multi-select-constants.cjs","sources":["../../../components/combobox_multi_select/combobox_multi_select_constants.js"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n // Numeric (preferred)\n 100: 'xs',\n 200: 'xs',\n 300: 'sm',\n // T-shirt aliases (deprecated)\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n // Numeric (preferred)\n 100: 1.4,\n 200: 0.4,\n 300: 0.2,\n // T-shirt aliases (deprecated)\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n"],"names":["MULTI_SELECT_SIZES","CHIP_SIZES","CHIP_TOP_POSITION","combobox_multi_select_constants"],"mappings":"4GAAY,MAACA,EAAqB,CAEhC,YAAa,KACb,MAAO,KACP,QAAS,IACX,EAEaC,EAAa,CAExB,IAAK,KACL,IAAK,KACL,IAAK,KAEL,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,EAEaC,EAAoB,CAE/B,IAAK,IACL,IAAK,GACL,IAAK,GAEL,GAAI,IACJ,GAAI,GACJ,GAAI,EACN,EAEAC,EAAe,CACb,mBAAAH,EACA,WAAAC,EACA,kBAAAC,CACF"}
@@ -3,22 +3,32 @@ const s = {
3
3
  EXTRA_SMALL: "xs",
4
4
  SMALL: "sm",
5
5
  DEFAULT: "md"
6
- }, t = {
6
+ }, m = {
7
+ // Numeric (preferred)
8
+ 100: "xs",
9
+ 200: "xs",
10
+ 300: "sm",
11
+ // T-shirt aliases (deprecated)
7
12
  xs: "xs",
8
13
  sm: "xs",
9
14
  md: "sm"
10
- }, m = {
15
+ }, t = {
16
+ // Numeric (preferred)
17
+ 100: 1.4,
18
+ 200: 0.4,
19
+ 300: 0.2,
20
+ // T-shirt aliases (deprecated)
11
21
  xs: 1.4,
12
22
  sm: 0.4,
13
23
  md: 0.2
14
24
  }, o = {
15
25
  MULTI_SELECT_SIZES: s,
16
- CHIP_SIZES: t,
17
- CHIP_TOP_POSITION: m
26
+ CHIP_SIZES: m,
27
+ CHIP_TOP_POSITION: t
18
28
  };
19
29
  export {
20
- t as CHIP_SIZES,
21
- m as CHIP_TOP_POSITION,
30
+ m as CHIP_SIZES,
31
+ t as CHIP_TOP_POSITION,
22
32
  s as MULTI_SELECT_SIZES,
23
33
  o as default
24
34
  };