@dialpad/dialtone-vue 3.223.0-next.2 → 3.223.0-next.4

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 (423) hide show
  1. package/dist/Combobox-CYEmi3dv.cjs +3 -0
  2. package/dist/Combobox-CYEmi3dv.cjs.map +1 -0
  3. package/dist/{Combobox-By01ETlj.js → Combobox-D8nQeBIf.js} +33 -32
  4. package/dist/Combobox-D8nQeBIf.js.map +1 -0
  5. package/dist/MarkdownRenderer-D5XWsyQk.cjs.map +1 -1
  6. package/dist/{MarkdownRenderer-C3MZDB2I.js → MarkdownRenderer-NSSny0ID.js} +2 -2
  7. package/dist/{MarkdownRenderer-C3MZDB2I.js.map → MarkdownRenderer-NSSny0ID.js.map} +1 -1
  8. package/dist/{RichTextEditor-BX-5tCOx.cjs → RichTextEditor-B9NGgB03.cjs} +2 -2
  9. package/dist/{RichTextEditor-BX-5tCOx.cjs.map → RichTextEditor-B9NGgB03.cjs.map} +1 -1
  10. package/dist/{RichTextEditor-D8Kas5A3.js → RichTextEditor-DxbZSRop.js} +4 -4
  11. package/dist/{RichTextEditor-D8Kas5A3.js.map → RichTextEditor-DxbZSRop.js.map} +1 -1
  12. package/dist/TextList-B6XFfQfD.js +88 -0
  13. package/dist/TextList-B6XFfQfD.js.map +1 -0
  14. package/dist/TextList-Dd-ROFiI.cjs +2 -0
  15. package/dist/TextList-Dd-ROFiI.cjs.map +1 -0
  16. package/dist/TextListItem-DIlrCkaM.cjs +2 -0
  17. package/dist/TextListItem-DIlrCkaM.cjs.map +1 -0
  18. package/dist/TextListItem-ImUi_FWh.js +62 -0
  19. package/dist/TextListItem-ImUi_FWh.js.map +1 -0
  20. package/dist/{Toast-CHbVmbBg.js → Toast-BIHkIpZP.js} +95 -94
  21. package/dist/Toast-BIHkIpZP.js.map +1 -0
  22. package/dist/Toast-D8ARDEgT.cjs +2 -0
  23. package/dist/Toast-D8ARDEgT.cjs.map +1 -0
  24. package/dist/{attachment_carousel-BFIAXWOZ.js → attachment_carousel-CyiexPBk.js} +1 -1
  25. package/dist/{attachment_carousel-BFIAXWOZ.js.map → attachment_carousel-CyiexPBk.js.map} +1 -1
  26. package/dist/{attachment_carousel-BJxqNJ5T.cjs → attachment_carousel-DJqILY7f.cjs} +1 -1
  27. package/dist/{attachment_carousel-BJxqNJ5T.cjs.map → attachment_carousel-DJqILY7f.cjs.map} +1 -1
  28. package/dist/common/mixins/input.d.ts +4 -4
  29. package/dist/common/mixins/input_group.d.ts +2 -2
  30. package/dist/common/sr_only_close_button.vue.d.ts +30 -30
  31. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  32. package/dist/common/validators/index.cjs +1 -1
  33. package/dist/common/validators/index.cjs.map +1 -1
  34. package/dist/common/validators/index.d.ts +2 -0
  35. package/dist/common/validators/index.d.ts.map +1 -1
  36. package/dist/common/validators/index.js +9 -2
  37. package/dist/common/validators/index.js.map +1 -1
  38. package/dist/component-documentation.json +1 -1
  39. package/dist/components/Avatar/Avatar.vue.d.ts +10 -10
  40. package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
  41. package/dist/components/Badge/Badge.vue.d.ts +13 -13
  42. package/dist/components/Banner/Banner.vue.d.ts +142 -107
  43. package/dist/components/Banner/Banner.vue.d.ts.map +1 -1
  44. package/dist/components/Box/Box.vue.d.ts +18 -0
  45. package/dist/components/Box/Box.vue.d.ts.map +1 -1
  46. package/dist/components/Box/BoxConstants.d.ts +4 -0
  47. package/dist/components/Box/BoxConstants.d.ts.map +1 -1
  48. package/dist/components/Box/Validators.d.ts +4 -0
  49. package/dist/components/Box/Validators.d.ts.map +1 -1
  50. package/dist/components/Box/index.d.ts +1 -1
  51. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts +1 -0
  52. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts.map +1 -1
  53. package/dist/components/Breadcrumbs/Breadcrumbs.vue.d.ts +3 -2
  54. package/dist/components/Button/Button.vue.d.ts +25 -25
  55. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  56. package/dist/components/Card/Card.vue.d.ts +6 -6
  57. package/dist/components/Checkbox/Checkbox.vue.d.ts +62 -27
  58. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  59. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +82 -47
  60. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -1
  61. package/dist/components/Chip/Chip.vue.d.ts +40 -40
  62. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  63. package/dist/components/Codeblock/Codeblock.vue.d.ts +2 -2
  64. package/dist/components/Collapsible/Collapsible.vue.d.ts +39 -39
  65. package/dist/components/Collapsible/Collapsible.vue.d.ts.map +1 -1
  66. package/dist/components/Combobox/Combobox.vue.d.ts +66 -66
  67. package/dist/components/Combobox/Combobox.vue.d.ts.map +1 -1
  68. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts +29 -29
  69. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts.map +1 -1
  70. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts +35 -35
  71. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts.map +1 -1
  72. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts +216 -216
  73. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts.map +1 -1
  74. package/dist/components/DescriptionList/DescriptionList.vue.d.ts +4 -4
  75. package/dist/components/Dropdown/Dropdown.vue.d.ts +82 -82
  76. package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  77. package/dist/components/Emoji/Emoji.vue.d.ts +17 -17
  78. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts +73 -38
  79. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts.map +1 -1
  80. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts +73 -38
  81. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts.map +1 -1
  82. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts +24 -24
  83. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts.map +1 -1
  84. package/dist/components/EmptyState/EmptyState.vue.d.ts.map +1 -1
  85. package/dist/components/FilterPill/FilterPill.vue.d.ts +380 -310
  86. package/dist/components/FilterPill/FilterPill.vue.d.ts.map +1 -1
  87. package/dist/components/Hovercard/Hovercard.vue.d.ts +156 -156
  88. package/dist/components/Hovercard/Hovercard.vue.d.ts.map +1 -1
  89. package/dist/components/Icon/Icon.vue.d.ts +7 -7
  90. package/dist/components/ImageViewer/ImageViewer.vue.d.ts +60 -60
  91. package/dist/components/ImageViewer/ImageViewer.vue.d.ts.map +1 -1
  92. package/dist/components/Input/Input.vue.d.ts +73 -38
  93. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  94. package/dist/components/InputGroup/InputGroup.vue.d.ts +82 -47
  95. package/dist/components/InputGroup/InputGroup.vue.d.ts.map +1 -1
  96. package/dist/components/ItemLayout/ItemLayout.vue.d.ts +20 -20
  97. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts +116 -81
  98. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts.map +1 -1
  99. package/dist/components/Link/Link.vue.d.ts +1 -0
  100. package/dist/components/Link/LinkConstants.d.ts +3 -0
  101. package/dist/components/Link/LinkConstants.d.ts.map +1 -1
  102. package/dist/components/ListItem/ListItem.vue.d.ts +27 -27
  103. package/dist/components/ListItem/ListItem.vue.d.ts.map +1 -1
  104. package/dist/components/ListItemGroup/ListItemGroup.vue.d.ts +4 -4
  105. package/dist/components/Loader/Loader.vue.d.ts +7 -7
  106. package/dist/components/Modal/Modal.vue.d.ts +115 -86
  107. package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
  108. package/dist/components/Modal/ModalConstants.d.ts +0 -5
  109. package/dist/components/Modal/index.d.ts +1 -1
  110. package/dist/components/Notice/Notice.vue.d.ts +142 -107
  111. package/dist/components/Notice/Notice.vue.d.ts.map +1 -1
  112. package/dist/components/Notice/NoticeAction.vue.d.ts +62 -62
  113. package/dist/components/Notice/NoticeAction.vue.d.ts.map +1 -1
  114. package/dist/components/Notice/NoticeContent.vue.d.ts +40 -5
  115. package/dist/components/Notice/NoticeContent.vue.d.ts.map +1 -1
  116. package/dist/components/Notice/NoticeIcon.vue.d.ts +32 -32
  117. package/dist/components/Notice/NoticeIcon.vue.d.ts.map +1 -1
  118. package/dist/components/Pagination/Pagination.vue.d.ts +40 -40
  119. package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
  120. package/dist/components/Popover/Popover.vue.d.ts +78 -78
  121. package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
  122. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts +34 -34
  123. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts.map +1 -1
  124. package/dist/components/ProgressCircle/ProgressCircle.vue.d.ts +7 -7
  125. package/dist/components/Prose/Prose.vue.d.ts.map +1 -1
  126. package/dist/components/Radio/Radio.vue.d.ts +62 -27
  127. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  128. package/dist/components/RadioGroup/RadioGroup.vue.d.ts +82 -47
  129. package/dist/components/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
  130. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts +6 -5
  131. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts.map +1 -1
  132. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts +10 -10
  133. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts.map +1 -1
  134. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiComponent.vue.d.ts +17 -17
  135. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiSuggestion.vue.d.ts +17 -17
  136. package/dist/components/RichTextEditor/Extensions/Mentions/MentionComponent.vue.d.ts +1 -0
  137. package/dist/components/RichTextEditor/Extensions/Mentions/MentionSuggestion.vue.d.ts +46 -11
  138. package/dist/components/RichTextEditor/Extensions/SlashCommand/SlashCommandSuggestion.vue.d.ts +36 -1
  139. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts +27 -27
  140. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts.map +1 -1
  141. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts +189 -154
  142. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts.map +1 -1
  143. package/dist/components/RootLayout/RootLayout.vue.d.ts +10 -10
  144. package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
  145. package/dist/components/SelectMenu/SelectMenu.vue.d.ts +69 -34
  146. package/dist/components/SelectMenu/SelectMenu.vue.d.ts.map +1 -1
  147. package/dist/components/Skeleton/Skeleton.vue.d.ts +8 -8
  148. package/dist/components/Skeleton/SkeletonListItem.vue.d.ts +4 -4
  149. package/dist/components/Skeleton/SkeletonParagraph.vue.d.ts +2 -2
  150. package/dist/components/Skeleton/SkeletonShape.vue.d.ts +2 -2
  151. package/dist/components/SplitButton/SplitButton.vue.d.ts +157 -157
  152. package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
  153. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts +30 -30
  154. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts.map +1 -1
  155. package/dist/components/SplitButton/SplitButtonStart.vue.d.ts +31 -31
  156. package/dist/components/Tab/Tab.vue.d.ts +33 -33
  157. package/dist/components/Tab/TabGroup.vue.d.ts +6 -6
  158. package/dist/components/Tab/TabPanel.vue.d.ts +2 -2
  159. package/dist/components/Text/Text.vue.d.ts +36 -1
  160. package/dist/components/Text/Text.vue.d.ts.map +1 -1
  161. package/dist/components/Text/TextConstants.d.ts +53 -0
  162. package/dist/components/Text/TextConstants.d.ts.map +1 -1
  163. package/dist/components/Text/index.d.ts +1 -1
  164. package/dist/components/TextList/TextList.vue.d.ts +87 -0
  165. package/dist/components/TextList/TextList.vue.d.ts.map +1 -0
  166. package/dist/components/TextList/TextListConstants.d.ts +20 -0
  167. package/dist/components/TextList/TextListConstants.d.ts.map +1 -0
  168. package/dist/components/TextList/TextListItem.vue.d.ts +60 -0
  169. package/dist/components/TextList/TextListItem.vue.d.ts.map +1 -0
  170. package/dist/components/TextList/Validators.d.ts +5 -0
  171. package/dist/components/TextList/Validators.d.ts.map +1 -0
  172. package/dist/components/TextList/index.d.ts +4 -0
  173. package/dist/components/TextList/index.d.ts.map +1 -0
  174. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts +144 -109
  175. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts.map +1 -1
  176. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts +34 -34
  177. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts.map +1 -1
  178. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts +142 -107
  179. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts.map +1 -1
  180. package/dist/components/Toast/Toast.vue.d.ts +580 -440
  181. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  182. package/dist/components/Toggle/Toggle.vue.d.ts +4 -4
  183. package/dist/components/Toggle/Toggle.vue.d.ts.map +1 -1
  184. package/dist/components/Tooltip/Tooltip.vue.d.ts +4 -4
  185. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts +22 -22
  186. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts.map +1 -1
  187. package/dist/dialtone-vue.cjs +1 -1
  188. package/dist/dialtone-vue.js +146 -142
  189. package/dist/index.d.ts +1 -0
  190. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  191. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  192. package/dist/lib/attachment-carousel/index.cjs +1 -1
  193. package/dist/lib/attachment-carousel/index.js +1 -1
  194. package/dist/lib/avatar/avatar.cjs +1 -1
  195. package/dist/lib/avatar/avatar.cjs.map +1 -1
  196. package/dist/lib/avatar/avatar.js +55 -54
  197. package/dist/lib/avatar/avatar.js.map +1 -1
  198. package/dist/lib/badge/badge.cjs +1 -1
  199. package/dist/lib/badge/badge.cjs.map +1 -1
  200. package/dist/lib/badge/badge.js +36 -35
  201. package/dist/lib/badge/badge.js.map +1 -1
  202. package/dist/lib/box/box-constants.cjs +1 -1
  203. package/dist/lib/box/box-constants.cjs.map +1 -1
  204. package/dist/lib/box/box-constants.js +34 -7
  205. package/dist/lib/box/box-constants.js.map +1 -1
  206. package/dist/lib/box/box.cjs +1 -1
  207. package/dist/lib/box/box.cjs.map +1 -1
  208. package/dist/lib/box/box.js +93 -34
  209. package/dist/lib/box/box.js.map +1 -1
  210. package/dist/lib/box/index.cjs +1 -1
  211. package/dist/lib/box/index.js +3 -3
  212. package/dist/lib/box/validators.cjs +1 -1
  213. package/dist/lib/box/validators.cjs.map +1 -1
  214. package/dist/lib/box/validators.js +4 -4
  215. package/dist/lib/box/validators.js.map +1 -1
  216. package/dist/lib/button/button.cjs +1 -1
  217. package/dist/lib/button/button.cjs.map +1 -1
  218. package/dist/lib/button/button.js +69 -68
  219. package/dist/lib/button/button.js.map +1 -1
  220. package/dist/lib/chip/chip.cjs +1 -1
  221. package/dist/lib/chip/chip.cjs.map +1 -1
  222. package/dist/lib/chip/chip.js +36 -35
  223. package/dist/lib/chip/chip.js.map +1 -1
  224. package/dist/lib/codeblock/codeblock.cjs +1 -1
  225. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  226. package/dist/lib/codeblock/codeblock.js +11 -10
  227. package/dist/lib/codeblock/codeblock.js.map +1 -1
  228. package/dist/lib/combobox/combobox.cjs +1 -1
  229. package/dist/lib/combobox/combobox.js +1 -1
  230. package/dist/lib/combobox/index.cjs +1 -1
  231. package/dist/lib/combobox/index.js +1 -1
  232. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  233. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  234. package/dist/lib/combobox-multi-select/combobox-multi-select.js +53 -53
  235. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  236. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  237. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  238. package/dist/lib/combobox-with-popover/combobox-with-popover.js +48 -47
  239. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  240. package/dist/lib/editor/editor.cjs +1 -1
  241. package/dist/lib/editor/editor.js +2 -2
  242. package/dist/lib/emoji/emoji.cjs +1 -1
  243. package/dist/lib/emoji/emoji.cjs.map +1 -1
  244. package/dist/lib/emoji/emoji.js +25 -24
  245. package/dist/lib/emoji/emoji.js.map +1 -1
  246. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
  247. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  248. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +20 -19
  249. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  250. package/dist/lib/empty-state/empty-state.cjs +1 -1
  251. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  252. package/dist/lib/empty-state/empty-state.js +31 -30
  253. package/dist/lib/empty-state/empty-state.js.map +1 -1
  254. package/dist/lib/filter-pill/filter-pill.cjs +1 -1
  255. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -1
  256. package/dist/lib/filter-pill/filter-pill.js +73 -72
  257. package/dist/lib/filter-pill/filter-pill.js.map +1 -1
  258. package/dist/lib/icon/icon.cjs +1 -1
  259. package/dist/lib/icon/icon.cjs.map +1 -1
  260. package/dist/lib/icon/icon.js +16 -15
  261. package/dist/lib/icon/icon.js.map +1 -1
  262. package/dist/lib/input/input.cjs +1 -1
  263. package/dist/lib/input/input.cjs.map +1 -1
  264. package/dist/lib/input/input.js +64 -63
  265. package/dist/lib/input/input.js.map +1 -1
  266. package/dist/lib/link/link-constants.cjs +1 -1
  267. package/dist/lib/link/link-constants.cjs.map +1 -1
  268. package/dist/lib/link/link-constants.js +11 -9
  269. package/dist/lib/link/link-constants.js.map +1 -1
  270. package/dist/lib/link/link.cjs +1 -1
  271. package/dist/lib/link/link.cjs.map +1 -1
  272. package/dist/lib/link/link.js +17 -14
  273. package/dist/lib/link/link.js.map +1 -1
  274. package/dist/lib/loader/loader.cjs +3 -3
  275. package/dist/lib/loader/loader.cjs.map +1 -1
  276. package/dist/lib/loader/loader.js +21 -20
  277. package/dist/lib/loader/loader.js.map +1 -1
  278. package/dist/lib/message-input/index.cjs +1 -1
  279. package/dist/lib/message-input/index.js +1 -1
  280. package/dist/lib/message-input/message-input.cjs +1 -1
  281. package/dist/lib/message-input/message-input.js +1 -1
  282. package/dist/lib/modal/index.cjs +1 -1
  283. package/dist/lib/modal/index.js +3 -3
  284. package/dist/lib/modal/modal-constants.cjs +1 -1
  285. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  286. package/dist/lib/modal/modal-constants.js +1 -4
  287. package/dist/lib/modal/modal-constants.js.map +1 -1
  288. package/dist/lib/modal/modal.cjs +1 -1
  289. package/dist/lib/modal/modal.cjs.map +1 -1
  290. package/dist/lib/modal/modal.js +40 -42
  291. package/dist/lib/modal/modal.js.map +1 -1
  292. package/dist/lib/popover/popover.cjs +1 -1
  293. package/dist/lib/popover/popover.cjs.map +1 -1
  294. package/dist/lib/popover/popover.js +1 -1
  295. package/dist/lib/popover/popover.js.map +1 -1
  296. package/dist/lib/progress-circle/progress-circle.cjs +1 -1
  297. package/dist/lib/progress-circle/progress-circle.cjs.map +1 -1
  298. package/dist/lib/progress-circle/progress-circle.js +33 -32
  299. package/dist/lib/progress-circle/progress-circle.js.map +1 -1
  300. package/dist/lib/prose/prose.cjs +1 -1
  301. package/dist/lib/prose/prose.cjs.map +1 -1
  302. package/dist/lib/prose/prose.js +23 -22
  303. package/dist/lib/prose/prose.js.map +1 -1
  304. package/dist/lib/rich-text-editor/index.cjs +1 -1
  305. package/dist/lib/rich-text-editor/index.js +1 -1
  306. package/dist/lib/rich-text-editor/markdown-renderer.js +1 -1
  307. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  308. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  309. package/dist/lib/segmented-control/segmented-control.cjs +1 -1
  310. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -1
  311. package/dist/lib/segmented-control/segmented-control.js +42 -41
  312. package/dist/lib/segmented-control/segmented-control.js.map +1 -1
  313. package/dist/lib/select-menu/select-menu.cjs +1 -1
  314. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  315. package/dist/lib/select-menu/select-menu.js +48 -47
  316. package/dist/lib/select-menu/select-menu.js.map +1 -1
  317. package/dist/lib/split-button/split-button.cjs +1 -1
  318. package/dist/lib/split-button/split-button.cjs.map +1 -1
  319. package/dist/lib/split-button/split-button.js +45 -44
  320. package/dist/lib/split-button/split-button.js.map +1 -1
  321. package/dist/lib/tab/tab-group.cjs +1 -1
  322. package/dist/lib/tab/tab-group.cjs.map +1 -1
  323. package/dist/lib/tab/tab-group.js +34 -35
  324. package/dist/lib/tab/tab-group.js.map +1 -1
  325. package/dist/lib/text/index.cjs +1 -1
  326. package/dist/lib/text/index.js +3 -3
  327. package/dist/lib/text/text-constants.cjs +1 -1
  328. package/dist/lib/text/text-constants.cjs.map +1 -1
  329. package/dist/lib/text/text-constants.js +70 -21
  330. package/dist/lib/text/text-constants.js.map +1 -1
  331. package/dist/lib/text/text.cjs +1 -1
  332. package/dist/lib/text/text.cjs.map +1 -1
  333. package/dist/lib/text/text.js +72 -37
  334. package/dist/lib/text/text.js.map +1 -1
  335. package/dist/lib/text-list/index.cjs +1 -0
  336. package/dist/lib/text-list/index.js +4 -0
  337. package/dist/lib/text-list/text-list-constants.cjs +2 -0
  338. package/dist/lib/text-list/text-list-constants.cjs.map +1 -0
  339. package/dist/lib/text-list/text-list-constants.js +31 -0
  340. package/dist/lib/text-list/text-list-constants.js.map +1 -0
  341. package/dist/lib/text-list/text-list-item.cjs +1 -0
  342. package/dist/lib/text-list/text-list-item.js +2 -0
  343. package/dist/lib/text-list/text-list.cjs +1 -0
  344. package/dist/lib/text-list/text-list.js +2 -0
  345. package/dist/lib/text-list/validators.cjs +2 -0
  346. package/dist/lib/text-list/validators.cjs.map +1 -0
  347. package/dist/lib/text-list/validators.js +10 -0
  348. package/dist/lib/text-list/validators.js.map +1 -0
  349. package/dist/lib/toast/index.cjs +1 -1
  350. package/dist/lib/toast/index.js +1 -1
  351. package/dist/lib/toast/toast.cjs +1 -1
  352. package/dist/lib/toast/toast.js +1 -1
  353. package/dist/lib/toggle/toggle.cjs +1 -1
  354. package/dist/lib/toggle/toggle.cjs.map +1 -1
  355. package/dist/lib/toggle/toggle.js +23 -22
  356. package/dist/lib/toggle/toggle.js.map +1 -1
  357. package/dist/{message_input-CbQCd07F.js → message_input-C6BcWqr8.js} +2 -2
  358. package/dist/{message_input-CbQCd07F.js.map → message_input-C6BcWqr8.js.map} +1 -1
  359. package/dist/{message_input-dBQwgyjI.cjs → message_input-ftx8f8wC.cjs} +2 -2
  360. package/dist/{message_input-dBQwgyjI.cjs.map → message_input-ftx8f8wC.cjs.map} +1 -1
  361. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  362. package/dist/node_modules/@tiptap/vue-3.js +1 -1
  363. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  364. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +33 -33
  365. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +149 -149
  366. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  367. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +147 -147
  368. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  369. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +173 -173
  370. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  371. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +40 -40
  372. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  373. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +132 -132
  374. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  375. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +97 -97
  376. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  377. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +25 -25
  378. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +107 -107
  379. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  380. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +103 -103
  381. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  382. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +672 -637
  383. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  384. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +70 -70
  385. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  386. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +66 -66
  387. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  388. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +55 -55
  389. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  390. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +55 -55
  391. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  392. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +784 -609
  393. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  394. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +145 -110
  395. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  396. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +326 -256
  397. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  398. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +185 -150
  399. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  400. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +30 -30
  401. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  402. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +30 -30
  403. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +28 -28
  404. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  405. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +72 -72
  406. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  407. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +215 -215
  408. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  409. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +176 -176
  410. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  411. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +80 -80
  412. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  413. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +181 -181
  414. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  415. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts +10 -10
  416. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  417. package/package.json +4 -4
  418. package/dist/Combobox-By01ETlj.js.map +0 -1
  419. package/dist/Combobox-D4hc1-41.cjs +0 -3
  420. package/dist/Combobox-D4hc1-41.cjs.map +0 -1
  421. package/dist/Toast-CHbVmbBg.js.map +0 -1
  422. package/dist/Toast-DX-REYXG.cjs +0 -2
  423. package/dist/Toast-DX-REYXG.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"select-menu.cjs","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(String(s)),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"select-menu.cjs","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { ordinalSizeValidator } from '@/common/validators';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(SELECT_SIZE_MODIFIERS),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"+lBAmHA,IAAK,EAAU,CACb,KAAM,eAEN,WAAY,CAAE,qBAAA,EAAA,QAAsB,OAAA,EAAA,QAAQ,CAE5C,OAAQ,CAAC,EAAA,cAAc,CAEvB,aAAc,GAEd,MAAO,CAKL,MAAO,CACL,KAAM,OACN,QAAS,GACV,CAMD,UAAW,CACT,KAAM,QACN,QAAS,GACV,CAMD,YAAa,CACX,KAAM,OACN,QAAS,GACV,CASD,QAAS,CACP,KAAM,MACN,YAAe,EAAE,CACjB,UAAW,GAAW,EAAA,iBAAiB,EAAQ,CAChD,CAMD,KAAM,CACJ,KAAM,CAAC,OAAQ,OAAO,CACtB,QAAS,IACT,UAAW,EAAA,qBAAqB,EAAA,sBAAsB,CACvD,CAKD,WAAY,CACV,KAAM,CAAC,OAAQ,MAAO,OAAO,CAC7B,QAAS,GACV,CAKD,iBAAkB,CAChB,KAAM,CAAC,OAAQ,MAAO,OAAO,CAC7B,QAAS,GACV,CAKD,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,OAAO,CAC7B,QAAS,GACV,CAKD,YAAa,CACX,KAAM,CAAC,OAAQ,MAAO,OAAO,CAC7B,QAAS,GACV,CAKD,gBAAiB,CACf,KAAM,OACN,aAAgB,EAAE,EACnB,CAKD,sBAAuB,CACrB,KAAM,OACN,aAAgB,EAAE,EACnB,CAKD,iBAAkB,CAChB,KAAM,OACN,aAAgB,EAAE,EACnB,CAMD,SAAU,CACR,KAAM,QACN,QAAS,GACV,CAKD,WAAY,CACV,KAAM,CAAC,OAAQ,OAAO,CACtB,QAAS,GACV,CAOD,UAAW,CACT,KAAM,CAAC,OAAQ,OAAO,CACtB,QAAS,KACT,UAAY,GAAM,EAAA,oBAAoB,MAAM,SAAS,OAAO,EAAE,CAAC,CAChE,CAMD,cAAe,CACb,KAAM,OACN,QAAS,KACT,UAAY,GAAM,OAAO,KAAK,EAAA,wBAAwB,CAAC,SAAS,EAAE,CACnE,CACF,CAED,MAAO,CAOL,oBAED,CAED,MAAQ,CACN,MAAO,CACL,sBAAA,EAAA,sBACA,uBAAA,EAAA,uBACA,eAAA,EAAA,eACA,WAAY,EAAA,iBAAiB,CAC9B,EAGH,SAAU,CACR,mBAAqB,CACnB,GAAI,KAAK,WAAa,KAAM,OAAO,KAAK,UACxC,IAAM,EAAU,OAAO,KAAK,KAAK,CAGjC,OADI,IAAY,MAAQ,IAAY,MAAc,IAAY,MAAQ,MAAQ,KACvE,KAAK,MAGd,yBAA2B,CAKzB,MAJY,CACV,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KACjD,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAC7C,CACU,OAAO,KAAK,KAAK,GAAK,MAGnC,4BAA8B,CAC5B,IAAM,EAAU,OAAO,KAAK,KAAK,CACjC,OAAQ,IAAY,MAAQ,IAAY,MAAS,MAAQ,IAAA,IAG3D,iBAAmB,CACjB,MAAO,CAML,UAAa,GACb,OAAQ,GAAS,KAAK,UAAU,EAAM,OAAO,MAAO,EAAM,CAC3D,EAGH,OAAS,CACP,OAAO,EAAA,mBAAmB,KAAK,kBAAkB,EAGnD,aAAe,CACb,OAAO,KAAK,QAAU,EAAA,yBAAyB,SAAW,OAAS,IAAA,IAGrE,iBAAmB,CACjB,OAAO,KAAK,cAAgB,KAAK,kBAAkB,OAAS,EAAI,KAAK,WAAa,IAAA,IAGpF,WAAa,CACX,OAAO,EAAA,iBAAiB,EAG1B,gBAAkB,CAChB,MAAO,UAAU,KAAK,UAAU,eAGlC,kBAAoB,CAKlB,OAJI,KAAK,OAAO,aAAe,KAAK,YAC3B,KAAK,eAGP,KAAK,OAAO,iBAEtB,CAED,SAAW,CACT,KAAK,yBAAyB,CAC9B,KAAK,gBAAgB,EAGvB,cAAgB,CACd,KAAK,yBAAyB,EAGhC,QAAS,CACP,sBAAA,EAAA,sBACA,UAAW,EAAO,EAAO,CACvB,KAAK,MAAM,oBAAqB,EAAO,EAAM,EAG/C,aAAc,EAAO,CACnB,MAAO,UAAU,KAAK,UAAU,UAAU,KAG5C,yBAA2B,CACrB,KAAK,SAAS,OAAS,GAAK,CAAC,KAAK,OAAO,UAC3C,EAAA,EAAA,MAAK,uDAAwD,KAAK,EAItE,gBAAkB,CAEZ,EADgB,KAAK,OAAO,OAAS,KAAK,QAC7B,CAAC,KAAK,OAAO,eAC5B,QAAQ,KACN,yHACD,EAGN,CACF,uPA7SO,MAAA,CApFH,OAAA,EAAA,EAAA,gBAAO,EAAA,OAAO,MAAK,CACnB,OAAA,EAAA,EAAA,gBAAO,EAAA,OAAO,MAAK,4BA0EZ,QAAA,KAAA,CAtEE,EAAA,YAAc,EAAA,eAAe,EAAA,OAAO,MAAK,EAAK,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,aAa5C,GAAA,EAAA,EAAA,YAAA,OAZR,KAAK,QACJ,KAAM,EAAA,kBACN,SAAU,EAAA,cACX,KAAK,YACL,GAAG,MACF,eAAc,EAAA,iBACd,MAAK,CAAA,uBAA2B,EAAA,WAAU,EACnC,EAAA,gBAAe,CACvB,UAAQ,kBAAiB,CAAA,CAAA,2BAGY,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,QAAA,EAAA,KAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAf,EAAA,MAAK,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,sFAGrB,EAAA,eAAe,EAAA,OAAO,YAAW,EAAK,EAAA,cAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,aAgBpC,GAAA,EAAA,EAAA,YAAA,OAfP,GAAI,EAAA,eACL,KAAK,OACJ,KAAM,EAAA,wBACP,KAAK,WACJ,QAAS,EAAA,2BACV,GAAG,MACF,MAAK,CAAA,gBAAyC,EAAA,iBAAA,EAIvC,EAAA,sBAAqB,CAC7B,UAAQ,wBAAuB,CAAA,CAAA,2BAGkB,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,cAAA,EAAA,KAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAArB,EAAA,YAAW,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,oGAuCnC,MAAA,CApCH,OAAA,EAAA,EAAA,gBAAK,YAAoC,EAAA,sBAAsB,OAAO,EAAA,KAAI,EAAc,EAAA,kCAA+C,EAAA,SAAQ,GAMhJ,UAAQ,+CA6BC,UAAA,EAAA,EAAA,YAAA,CA1BP,IAAI,gBACH,MAAK,CAAA,kBAA+C,EAAA,uBAAuB,EAAA,OAAA,CAI3E,aAAU,CAAG,EAAA,WAAa,EAAA,MAAQ,EAAA,MAAQ,IAAA,GAC1C,eAAc,EAAA,YACd,mBAAkB,EAAA,iBACX,EAAA,sBAAsB,EAAA,OAAM,CAAA,CACpC,UAAQ,YACP,SAAU,EAAA,SACV,MAAO,EAAA,6BACc,EAAhB,gBAAe,GAAA,CAAA,CAAA,EAAA,EAAA,EAAA,YAad,EAAA,OAAA,UAAA,EAAA,KAAA,GAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,EAAA,oBADI,EAAA,SAAA,MAAA,EAAA,EAAA,YAPU,EAAA,QAAV,+CAOA,UAAA,EAAA,EAAA,YAAA,CANN,IAAK,EAAA,aAAa,EAAO,MAAK,CAC9B,MAAO,EAAO,MACd,MAAO,EAAA,0BACA,EAAA,iBAAgB,EAAA,EAAA,EAAA,iBAErB,EAAO,MAAK,CAAA,GAAA,EAAA,0CAavB,GAAA,EAAA,EAAA,YAAA,EANQ,mBAAkB,CACzB,GAAI,EAAA,WACJ,sBAAqB,EAAA,kBACrB,gBAAe,EAAA,aACf,MAAO,EAAA,cACR,UAAQ"}
@@ -1,21 +1,22 @@
1
1
  import { VALIDATION_MESSAGE_TYPES as e } from "../../common/constants/index.js";
2
- import { getUniqueString as t, getValidationState as n, hasSlotContent as r, removeClassStyleAttrs as i } from "../../common/utils/index.js";
3
- import { MessagesMixin as a } from "../../common/mixins/input.js";
4
- import { t as o } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
5
- import s from "../validation-messages/validation-messages.js";
6
- import { TEXT_SIZE_MODIFIERS as c, TEXT_STRENGTH_MODIFIERS as l } from "../text/text-constants.js";
7
- import u from "../text/text.js";
8
- import { SELECT_SIZE_MODIFIERS as d, SELECT_STATE_MODIFIERS as f } from "./select-menu-constants.js";
9
- import { optionsValidator as p } from "./select-menu-validators.js";
10
- import { Fragment as m, createBlock as h, createCommentVNode as g, createElementBlock as _, createElementVNode as v, createTextVNode as y, createVNode as b, mergeProps as x, normalizeClass as S, normalizeStyle as C, openBlock as w, renderList as T, renderSlot as E, resolveComponent as D, toDisplayString as O, toHandlers as k, warn as A, withCtx as j } from "vue";
2
+ import { ordinalSizeValidator as t } from "../../common/validators/index.js";
3
+ import { getUniqueString as n, getValidationState as r, hasSlotContent as i, removeClassStyleAttrs as a } from "../../common/utils/index.js";
4
+ import { MessagesMixin as o } from "../../common/mixins/input.js";
5
+ import { t as s } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
6
+ import c from "../validation-messages/validation-messages.js";
7
+ import { TEXT_SIZE_MODIFIERS as l, TEXT_STRENGTH_MODIFIERS as u } from "../text/text-constants.js";
8
+ import d from "../text/text.js";
9
+ import { SELECT_SIZE_MODIFIERS as f, SELECT_STATE_MODIFIERS as p } from "./select-menu-constants.js";
10
+ import { optionsValidator as m } from "./select-menu-validators.js";
11
+ import { Fragment as h, createBlock as g, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createTextVNode as b, createVNode as x, mergeProps as S, normalizeClass as C, normalizeStyle as w, openBlock as T, renderList as E, renderSlot as D, resolveComponent as O, toDisplayString as k, toHandlers as A, warn as j, withCtx as M } from "vue";
11
12
  //#region components/SelectMenu/SelectMenu.vue
12
- var M = {
13
+ var N = {
13
14
  name: "DtSelectMenu",
14
15
  components: {
15
- DtValidationMessages: s,
16
- DtText: u
16
+ DtValidationMessages: c,
17
+ DtText: d
17
18
  },
18
- mixins: [a],
19
+ mixins: [o],
19
20
  inheritAttrs: !1,
20
21
  props: {
21
22
  label: {
@@ -33,12 +34,12 @@ var M = {
33
34
  options: {
34
35
  type: Array,
35
36
  default: () => [],
36
- validator: (e) => p(e)
37
+ validator: (e) => m(e)
37
38
  },
38
39
  size: {
39
40
  type: [String, Number],
40
41
  default: 300,
41
- validator: (e) => Object.keys(d).includes(String(e))
42
+ validator: t(f)
42
43
  },
43
44
  labelClass: {
44
45
  type: [
@@ -95,21 +96,21 @@ var M = {
95
96
  labelSize: {
96
97
  type: [String, Number],
97
98
  default: null,
98
- validator: (e) => c.label.includes(String(e))
99
+ validator: (e) => l.label.includes(String(e))
99
100
  },
100
101
  labelStrength: {
101
102
  type: String,
102
103
  default: null,
103
- validator: (e) => Object.keys(l).includes(e)
104
+ validator: (e) => Object.keys(u).includes(e)
104
105
  }
105
106
  },
106
107
  emits: ["update:modelValue"],
107
108
  data() {
108
109
  return {
109
- SELECT_SIZE_MODIFIERS: d,
110
- SELECT_STATE_MODIFIERS: f,
111
- hasSlotContent: r,
112
- messagesId: t()
110
+ SELECT_SIZE_MODIFIERS: f,
111
+ SELECT_STATE_MODIFIERS: p,
112
+ hasSlotContent: i,
113
+ messagesId: n()
113
114
  };
114
115
  },
115
116
  computed: {
@@ -143,7 +144,7 @@ var M = {
143
144
  };
144
145
  },
145
146
  state() {
146
- return n(this.formattedMessages);
147
+ return r(this.formattedMessages);
147
148
  },
148
149
  ariaInvalid() {
149
150
  return this.state === e.CRITICAL ? "true" : void 0;
@@ -152,7 +153,7 @@ var M = {
152
153
  return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : void 0;
153
154
  },
154
155
  selectKey() {
155
- return t();
156
+ return n();
156
157
  },
157
158
  descriptionKey() {
158
159
  return `select-${this.selectKey}-description`;
@@ -168,7 +169,7 @@ var M = {
168
169
  this.validateOptionsPresence();
169
170
  },
170
171
  methods: {
171
- removeClassStyleAttrs: i,
172
+ removeClassStyleAttrs: a,
172
173
  emitValue(e, t) {
173
174
  this.$emit("update:modelValue", e, t);
174
175
  },
@@ -176,26 +177,26 @@ var M = {
176
177
  return `select-${this.selectKey}-option-${e}`;
177
178
  },
178
179
  validateOptionsPresence() {
179
- this.options?.length < 1 && !this.$slots.default && A("Options are expected to be provided via prop or slot", this);
180
+ this.options?.length < 1 && !this.$slots.default && j("Options are expected to be provided via prop or slot", this);
180
181
  },
181
182
  runValidations() {
182
183
  !(this.$slots.label || this.label) && !this.$attrs["aria-label"] && console.info("[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.");
183
184
  }
184
185
  }
185
- }, N = [
186
+ }, P = [
186
187
  "aria-label",
187
188
  "aria-invalid",
188
189
  "aria-describedby",
189
190
  "disabled",
190
191
  "value"
191
- ], P = ["value"];
192
- function F(e, t, n, r, i, a) {
193
- let o = D("dt-text"), s = D("dt-validation-messages");
194
- return w(), _("div", {
195
- class: S(e.$attrs.class),
196
- style: C(e.$attrs.style)
197
- }, [v("label", null, [
198
- n.showLabel && (i.hasSlotContent(e.$slots.label) || n.label) ? (w(), h(o, x({
192
+ ], F = ["value"];
193
+ function I(e, t, n, r, i, a) {
194
+ let o = O("dt-text"), s = O("dt-validation-messages");
195
+ return T(), v("div", {
196
+ class: C(e.$attrs.class),
197
+ style: w(e.$attrs.style)
198
+ }, [y("label", null, [
199
+ n.showLabel && (i.hasSlotContent(e.$slots.label) || n.label) ? (T(), g(o, S({
199
200
  key: 0,
200
201
  kind: "label",
201
202
  size: a.resolvedLabelSize,
@@ -205,15 +206,15 @@ function F(e, t, n, r, i, a) {
205
206
  "aria-details": a.labelAriaDetails,
206
207
  class: ["d-select__label-text", n.labelClass]
207
208
  }, n.labelChildProps, { "data-qa": "dt-select-label" }), {
208
- default: j(() => [E(e.$slots, "label", {}, () => [y(O(n.label), 1)])]),
209
+ default: M(() => [D(e.$slots, "label", {}, () => [b(k(n.label), 1)])]),
209
210
  _: 3
210
211
  }, 16, [
211
212
  "size",
212
213
  "strength",
213
214
  "aria-details",
214
215
  "class"
215
- ])) : g("", !0),
216
- i.hasSlotContent(e.$slots.description) || n.description ? (w(), h(o, x({
216
+ ])) : _("", !0),
217
+ i.hasSlotContent(e.$slots.description) || n.description ? (T(), g(o, S({
217
218
  key: 1,
218
219
  id: a.descriptionKey,
219
220
  kind: "body",
@@ -223,23 +224,23 @@ function F(e, t, n, r, i, a) {
223
224
  as: "div",
224
225
  class: ["d-description", n.descriptionClass]
225
226
  }, n.descriptionChildProps, { "data-qa": "dt-select-description" }), {
226
- default: j(() => [E(e.$slots, "description", {}, () => [y(O(n.description), 1)])]),
227
+ default: M(() => [D(e.$slots, "description", {}, () => [b(k(n.description), 1)])]),
227
228
  _: 3
228
229
  }, 16, [
229
230
  "id",
230
231
  "size",
231
232
  "density",
232
233
  "class"
233
- ])) : g("", !0),
234
- v("div", {
235
- class: S([
234
+ ])) : _("", !0),
235
+ y("div", {
236
+ class: C([
236
237
  "d-select",
237
238
  i.SELECT_SIZE_MODIFIERS[String(n.size)],
238
239
  n.selectClass,
239
240
  { "d-select--disabled": n.disabled }
240
241
  ]),
241
242
  "data-qa": "dt-select-wrapper"
242
- }, [v("select", x({
243
+ }, [y("select", S({
243
244
  ref: "selectElement",
244
245
  class: ["d-select__input", i.SELECT_STATE_MODIFIERS[a.state]],
245
246
  "aria-label": !n.showLabel && n.label ? n.label : void 0,
@@ -249,12 +250,12 @@ function F(e, t, n, r, i, a) {
249
250
  "data-qa": "dt-select",
250
251
  disabled: n.disabled,
251
252
  value: n.modelValue
252
- }, k(a.selectListeners, !0)), [E(e.$slots, "default", {}, () => [(w(!0), _(m, null, T(n.options, (e) => (w(), _("option", x({
253
+ }, A(a.selectListeners, !0)), [D(e.$slots, "default", {}, () => [(T(!0), v(h, null, E(n.options, (e) => (T(), v("option", S({
253
254
  key: a.getOptionKey(e.value),
254
255
  value: e.value,
255
256
  class: n.optionClass
256
- }, { ref_for: !0 }, n.optionChildProps), O(e.label), 17, P))), 128))])], 16, N)], 2)
257
- ]), b(s, x(e.messagesChildProps, {
257
+ }, { ref_for: !0 }, n.optionChildProps), k(e.label), 17, F))), 128))])], 16, P)], 2)
258
+ ]), x(s, S(e.messagesChildProps, {
258
259
  id: i.messagesId,
259
260
  "validation-messages": e.formattedMessages,
260
261
  "show-messages": e.showMessages,
@@ -267,8 +268,8 @@ function F(e, t, n, r, i, a) {
267
268
  "class"
268
269
  ])], 6);
269
270
  }
270
- var I = /* @__PURE__ */ o(M, [["render", F]]);
271
+ var L = /* @__PURE__ */ s(N, [["render", I]]);
271
272
  //#endregion
272
- export { I as default };
273
+ export { L as default };
273
274
 
274
275
  //# sourceMappingURL=select-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-menu.js","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(String(s)),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":";;;;;;;;;;;AAkHA,IAAK,IAAU;CACb,MAAM;CAEN,YAAY;EAAE,sBAAA;EAAsB,QAAA;EAAQ;CAE5C,QAAQ,CAAC,EAAc;CAEvB,cAAc;CAEd,OAAO;EAKL,OAAO;GACL,MAAM;GACN,SAAS;GACV;EAMD,WAAW;GACT,MAAM;GACN,SAAS;GACV;EAMD,aAAa;GACX,MAAM;GACN,SAAS;GACV;EASD,SAAS;GACP,MAAM;GACN,eAAe,EAAE;GACjB,YAAW,MAAW,EAAiB,EAAQ;GAChD;EAMD,MAAM;GACJ,MAAM,CAAC,QAAQ,OAAO;GACtB,SAAS;GACT,YAAY,MAAM,OAAO,KAAK,EAAsB,CAAC,SAAS,OAAO,EAAE,CAAC;GACzE;EAKD,YAAY;GACV,MAAM;IAAC;IAAQ;IAAO;IAAO;GAC7B,SAAS;GACV;EAKD,kBAAkB;GAChB,MAAM;IAAC;IAAQ;IAAO;IAAO;GAC7B,SAAS;GACV;EAKD,aAAa;GACX,MAAM;IAAC;IAAQ;IAAO;IAAO;GAC7B,SAAS;GACV;EAKD,aAAa;GACX,MAAM;IAAC;IAAQ;IAAO;IAAO;GAC7B,SAAS;GACV;EAKD,iBAAiB;GACf,MAAM;GACN,gBAAgB,EAAE;GACnB;EAKD,uBAAuB;GACrB,MAAM;GACN,gBAAgB,EAAE;GACnB;EAKD,kBAAkB;GAChB,MAAM;GACN,gBAAgB,EAAE;GACnB;EAMD,UAAU;GACR,MAAM;GACN,SAAS;GACV;EAKD,YAAY;GACV,MAAM,CAAC,QAAQ,OAAO;GACtB,SAAS;GACV;EAOD,WAAW;GACT,MAAM,CAAC,QAAQ,OAAO;GACtB,SAAS;GACT,YAAY,MAAM,EAAoB,MAAM,SAAS,OAAO,EAAE,CAAC;GAChE;EAMD,eAAe;GACb,MAAM;GACN,SAAS;GACT,YAAY,MAAM,OAAO,KAAK,EAAwB,CAAC,SAAS,EAAE;GACnE;EACF;CAED,OAAO,CAOL,oBAED;CAED,OAAQ;AACN,SAAO;GACL;GACA;GACA;GACA,YAAY,GAAiB;GAC9B;;CAGH,UAAU;EACR,oBAAqB;AACnB,OAAI,KAAK,aAAa,KAAM,QAAO,KAAK;GACxC,IAAM,IAAU,OAAO,KAAK,KAAK;AAGjC,UADI,MAAY,QAAQ,MAAY,QAAc,MAAY,QAAQ,QAAQ,OACvE,KAAK;;EAGd,0BAA2B;AAKzB,UAJY;IACV,KAAK;IAAM,KAAK;IAAM,KAAK;IAAM,KAAK;IAAM,KAAK;IACjD,IAAI;IAAM,IAAI;IAAM,IAAI;IAAM,IAAI;IAAM,IAAI;IAC7C,CACU,OAAO,KAAK,KAAK,KAAK;;EAGnC,6BAA8B;GAC5B,IAAM,IAAU,OAAO,KAAK,KAAK;AACjC,UAAQ,MAAY,QAAQ,MAAY,QAAS,QAAQ,KAAA;;EAG3D,kBAAmB;AACjB,UAAO;IAML,aAAa;IACb,SAAQ,MAAS,KAAK,UAAU,EAAM,OAAO,OAAO,EAAM;IAC3D;;EAGH,QAAS;AACP,UAAO,EAAmB,KAAK,kBAAkB;;EAGnD,cAAe;AACb,UAAO,KAAK,UAAU,EAAyB,WAAW,SAAS,KAAA;;EAGrE,kBAAmB;AACjB,UAAO,KAAK,gBAAgB,KAAK,kBAAkB,SAAS,IAAI,KAAK,aAAa,KAAA;;EAGpF,YAAa;AACX,UAAO,GAAiB;;EAG1B,iBAAkB;AAChB,UAAO,UAAU,KAAK,UAAU;;EAGlC,mBAAoB;AAKlB,UAJI,KAAK,OAAO,eAAe,KAAK,cAC3B,KAAK,iBAGP,KAAK,OAAO;;EAEtB;CAED,UAAW;AAET,EADA,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB;;CAGvB,eAAgB;AACd,OAAK,yBAAyB;;CAGhC,SAAS;EACP;EACA,UAAW,GAAO,GAAO;AACvB,QAAK,MAAM,qBAAqB,GAAO,EAAM;;EAG/C,aAAc,GAAO;AACnB,UAAO,UAAU,KAAK,UAAU,UAAU;;EAG5C,0BAA2B;AACzB,GAAI,KAAK,SAAS,SAAS,KAAK,CAAC,KAAK,OAAO,WAC3C,EAAK,wDAAwD,KAAK;;EAItE,iBAAkB;AAEhB,GAAI,EADgB,KAAK,OAAO,SAAS,KAAK,UAC7B,CAAC,KAAK,OAAO,iBAC5B,QAAQ,KACN,2HACD;;EAGN;CACF;;;;;;;;;aAjYC,EAqFM,OAAA;EApFH,OAAK,EAAE,EAAA,OAAO,MAAK;EACnB,OAAK,EAAE,EAAA,OAAO,MAAK;KAEpB,EAwEQ,SAAA,MAAA;EAtEE,EAAA,cAAc,EAAA,eAAe,EAAA,OAAO,MAAK,IAAK,EAAA,UAAA,GAAA,EADtD,EAcU,GAdV,EAcU;;GAZR,MAAK;GACJ,MAAM,EAAA;GACN,UAAU,EAAA;GACX,MAAK;GACL,IAAG;GACF,gBAAc,EAAA;GACd,OAAK,CAAA,wBAA2B,EAAA,WAAU;KACnC,EAAA,iBAAe,EACvB,WAAQ,mBAAiB,CAAA,EAAA;oBAGY,CAArC,EAAqC,EAAA,QAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAf,EAAA,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;EAGrB,EAAA,eAAe,EAAA,OAAO,YAAW,IAAK,EAAA,eAAA,GAAA,EAD9C,EAiBU,GAjBV,EAiBU;;GAfP,IAAI,EAAA;GACL,MAAK;GACJ,MAAM,EAAA;GACP,MAAK;GACJ,SAAS,EAAA;GACV,IAAG;GACF,OAAK,CAAA,iBAAyC,EAAA,iBAAA;KAIvC,EAAA,uBAAqB,EAC7B,WAAQ,yBAAuB,CAAA,EAAA;oBAGkB,CAAjD,EAAiD,EAAA,QAAA,eAAA,EAAA,QAAA,CAAA,EAAA,EAArB,EAAA,YAAW,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;EAEzC,EAqCM,OAAA;GApCH,OAAK,EAAA;;IAAoC,EAAA,sBAAsB,OAAO,EAAA,KAAI;IAAc,EAAA;4BAA+C,EAAA,UAAQ;;GAMhJ,WAAQ;MAER,EA2BS,UA3BT,EA2BS;GA1BP,KAAI;GACH,OAAK,CAAA,mBAA+C,EAAA,uBAAuB,EAAA,OAAA;GAI3E,cAAU,CAAG,EAAA,aAAa,EAAA,QAAQ,EAAA,QAAQ,KAAA;GAC1C,gBAAc,EAAA;GACd,oBAAkB,EAAA;KACX,EAAA,sBAAsB,EAAA,OAAM,EAAA;GACpC,WAAQ;GACP,UAAU,EAAA;GACV,OAAO,EAAA;KACR,EAAsB,EAAhB,iBAAe,GAAA,CAAA,EAAA,CAGrB,EAUO,EAAA,QAAA,WAAA,EAAA,QAAA,EAAA,EAAA,GAAA,EATL,EAQS,GAAA,MAAA,EAPU,EAAA,UAAV,YADT,EAQS,UART,EAQS;GANN,KAAK,EAAA,aAAa,EAAO,MAAK;GAC9B,OAAO,EAAO;GACd,OAAO,EAAA;sBACA,EAAA,iBAAgB,EAAA,EAErB,EAAO,MAAK,EAAA,IAAA,EAAA;KAMzB,EAOE,GAPF,EAOE,EANQ,oBAAkB;EACzB,IAAI,EAAA;EACJ,uBAAqB,EAAA;EACrB,iBAAe,EAAA;EACf,OAAO,EAAA;EACR,WAAQ"}
1
+ {"version":3,"file":"select-menu.js","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { ordinalSizeValidator } from '@/common/validators';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(SELECT_SIZE_MODIFIERS),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/utils/index.cjs`),t=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),n=require(`../button/button-constants.cjs`),r=require(`../dropdown/dropdown.cjs`),i=require(`./split-button-start.cjs`),a=require(`./split-button-end.cjs`);let o=require(`vue`);var s={name:`DtSplitButton`,components:{SplitButtonEnd:a.default,DtDropdown:r.default,SplitButtonStart:i.default},inheritAttrs:!1,props:{startActive:{type:Boolean,default:!1},alphaActive:{type:Boolean,default:null},startAriaLabel:{type:String,default:null},alphaAriaLabel:{type:String,default:void 0},startIconPosition:{type:String,default:`left`,validator:e=>Object.keys(n.ICON_POSITION_MODIFIERS).includes(e)},alphaIconPosition:{type:String,default:void 0,validator:e=>e===void 0||Object.keys(n.ICON_POSITION_MODIFIERS).includes(e)},startLabelClass:{type:[String,Array,Object],default:``},startLeadingClass:{type:[String,Array,Object],default:``},alphaLeadingClass:{type:[String,Array,Object],default:void 0},startTrailingClass:{type:[String,Array,Object],default:``},alphaTrailingClass:{type:[String,Array,Object],default:void 0},alphaLabelClass:{type:[String,Array,Object],default:void 0},startDisabled:{type:Boolean,default:!1},alphaDisabled:{type:Boolean,default:null},startLoading:{type:Boolean,default:!1},alphaLoading:{type:Boolean,default:null},startTooltipText:{type:String,default:void 0},alphaTooltipText:{type:String,default:void 0},assertiveOnFocus:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},dropdownPlacement:{type:String,default:`bottom-end`},importance:{type:String,default:`primary`,validator:e=>Object.keys(n.BUTTON_IMPORTANCE_MODIFIERS).includes(e)},kind:{type:String,default:`default`,validator:e=>Object.keys(n.BUTTON_KIND_MODIFIERS).includes(e)},endActive:{type:Boolean,default:!1},omegaActive:{type:Boolean,default:null},endAriaLabel:{type:String,default:null},omegaAriaLabel:{type:String,default:void 0},endDisabled:{type:Boolean,default:!1},omegaDisabled:{type:Boolean,default:null},endId:{type:String,default:void 0},omegaId:{type:String,default:void 0},endTooltipText:{type:String,default:void 0},omegaTooltipText:{type:String,default:void 0},size:{type:[String,Number],default:300,validator:e=>Object.keys(n.BUTTON_SIZE_MODIFIERS).includes(String(e))},width:{type:String,default:null},showDivider:{type:Boolean,default:!0},startTo:{type:[String,Object],default:null},startReplace:{type:Boolean,default:!1},startHref:{type:String,default:null},startTarget:{type:String,default:null},startRel:{type:String,default:null}},emits:[`start-clicked`,`alpha-clicked`,`end-clicked`,`omega-clicked`],data(){return{isDropdownOpen:!1}},computed:{startButtonProps(){return{active:this.alphaActive??this.startActive,ariaLabel:this.alphaAriaLabel??this.startAriaLabel,assertiveOnFocus:this.assertiveOnFocus,disabled:this.disabled||(this.alphaDisabled??this.startDisabled),iconPosition:this.alphaIconPosition??this.startIconPosition,labelClass:this.alphaLabelClass??this.startLabelClass,leadingClass:this.alphaLeadingClass??this.startLeadingClass,trailingClass:this.alphaTrailingClass??this.startTrailingClass,loading:this.alphaLoading??this.startLoading,importance:this.importance,kind:this.kind,size:this.size,tooltipText:this.alphaTooltipText??this.startTooltipText,to:this.startTo,replace:this.startReplace,href:this.startHref,target:this.startTarget,rel:this.startRel,class:this.$attrs.class,style:this.$attrs.style}},endButtonProps(){return{id:this.omegaId??this.endId,active:this.omegaActive??this.endActive,ariaLabel:this.omegaAriaLabel??this.endAriaLabel,disabled:this.disabled||(this.omegaDisabled??this.endDisabled),importance:this.importance,kind:this.kind,size:this.size,tooltipText:this.omegaTooltipText??this.endTooltipText,class:this.$attrs.class,style:this.$attrs.style}}},created(){this.validateProps()},updated(){this.validateProps()},mounted(){e.warnIfUnmounted(e.returnFirstEl(this.$el),this.$options.name)},methods:{onStartClick(){this.$emit(`start-clicked`),this.$emit(`alpha-clicked`)},onEndClick(){this.$emit(`end-clicked`),this.$emit(`omega-clicked`)},validateProps(){this.validateStartButtonProps(),this.validateEndButtonProps(),this.validateShowDivider()},validateStartButtonProps(){e.hasSlotContent(this.$slots.default)||(e.hasSlotContent(this.$slots.startIcon)||e.hasSlotContent(this.$slots.alphaIcon))&&!(this.alphaTooltipText??this.startTooltipText)&&console.warn(`start-tooltip-text prop must be set if start button has an icon only`)},validateEndButtonProps(){e.hasSlotContent(this.$slots.end)||e.hasSlotContent(this.$slots.omega)||(this.omegaTooltipText??this.endTooltipText)||console.warn(`end-tooltip-text prop is required as it is an icon-only button`)},validateShowDivider(){!this.showDivider&&this.importance!==`clear`&&console.warn(`show-divider prop set to false has no effect when importance is not "clear". The divider is always shown for "outlined" and "primary" importances.`)}}};function c(e,t,n,r,i,a){let s=(0,o.resolveComponent)(`split-button-start`),c=(0,o.resolveComponent)(`split-button-end`),l=(0,o.resolveComponent)(`dt-dropdown`);return(0,o.openBlock)(),(0,o.createElementBlock)(`span`,{"data-qa":`dt-split-button`,class:(0,o.normalizeClass)([`d-split-btn`,{"d-split-btn--no-divider":!n.showDivider&&n.importance===`clear`},e.$attrs.class]),style:(0,o.normalizeStyle)([e.$attrs.style,{width:n.width}])},[(0,o.createVNode)(s,(0,o.mergeProps)(a.startButtonProps,{ref:`startButton`,onClick:a.onStartClick}),(0,o.createSlots)({default:(0,o.withCtx)(()=>[(0,o.renderSlot)(e.$slots,`default`)]),_:2},[e.$slots.startEndIcon?{name:`startIcon`,fn:(0,o.withCtx)(({size:t})=>[e.$slots.startIcon?(0,o.renderSlot)(e.$slots,`startIcon`,{key:0,size:t}):(0,o.renderSlot)(e.$slots,`alphaIcon`,{key:1,size:t})]),key:`0`}:void 0,e.$slots.startEndIcon?{name:`endIcon`,fn:(0,o.withCtx)(({size:t})=>[(0,o.renderSlot)(e.$slots,`startEndIcon`,{size:t})]),key:`1`}:void 0,e.$slots.startEndIcon?void 0:{name:`icon`,fn:(0,o.withCtx)(({size:t})=>[e.$slots.startIcon?(0,o.renderSlot)(e.$slots,`startIcon`,{key:0,size:t}):(0,o.renderSlot)(e.$slots,`alphaIcon`,{key:1,size:t})]),key:`2`},e.$slots.leading?{name:`leading`,fn:(0,o.withCtx)(()=>[(0,o.renderSlot)(e.$slots,`leading`)]),key:`3`}:void 0,e.$slots.trailing?{name:`trailing`,fn:(0,o.withCtx)(()=>[(0,o.renderSlot)(e.$slots,`trailing`)]),key:`4`}:void 0]),1040,[`onClick`]),e.$slots.end?(0,o.renderSlot)(e.$slots,`end`,{key:0}):e.$slots.omega?(0,o.renderSlot)(e.$slots,`omega`,{key:1}):((0,o.openBlock)(),(0,o.createElementBlock)(o.Fragment,{key:2},[e.$slots.dropdownList?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0,placement:n.dropdownPlacement,onClick:t[0]||(t[0]=e=>i.isDropdownOpen=!0),onOpened:t[1]||(t[1]=e=>i.isDropdownOpen=e)},{anchor:(0,o.withCtx)(t=>[(0,o.createVNode)(c,(0,o.mergeProps)({...t,...a.endButtonProps},{active:i.isDropdownOpen,onClick:a.onEndClick}),{icon:(0,o.withCtx)(({size:t})=>[e.$slots.endIcon?(0,o.renderSlot)(e.$slots,`endIcon`,{key:0,size:t}):(0,o.renderSlot)(e.$slots,`omegaIcon`,{key:1,size:t})]),_:3},16,[`active`,`onClick`])]),list:(0,o.withCtx)(({close:t})=>[(0,o.renderSlot)(e.$slots,`dropdownList`,{close:t})]),_:3},8,[`placement`])):((0,o.openBlock)(),(0,o.createBlock)(c,(0,o.mergeProps)({key:1},a.endButtonProps,{onClick:a.onEndClick}),{icon:(0,o.withCtx)(({size:t})=>[e.$slots.endIcon?(0,o.renderSlot)(e.$slots,`endIcon`,{key:0,size:t}):(0,o.renderSlot)(e.$slots,`omegaIcon`,{key:1,size:t})]),_:3},16,[`onClick`]))],64))],6)}var l=t.t(s,[[`render`,c]]);exports.default=l;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/validators/index.cjs`),t=require(`../../common/utils/index.cjs`),n=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),r=require(`../button/button-constants.cjs`),i=require(`../dropdown/dropdown.cjs`),a=require(`./split-button-start.cjs`),o=require(`./split-button-end.cjs`);let s=require(`vue`);var c={name:`DtSplitButton`,components:{SplitButtonEnd:o.default,DtDropdown:i.default,SplitButtonStart:a.default},inheritAttrs:!1,props:{startActive:{type:Boolean,default:!1},alphaActive:{type:Boolean,default:null},startAriaLabel:{type:String,default:null},alphaAriaLabel:{type:String,default:void 0},startIconPosition:{type:String,default:`left`,validator:e=>Object.keys(r.ICON_POSITION_MODIFIERS).includes(e)},alphaIconPosition:{type:String,default:void 0,validator:e=>e===void 0||Object.keys(r.ICON_POSITION_MODIFIERS).includes(e)},startLabelClass:{type:[String,Array,Object],default:``},startLeadingClass:{type:[String,Array,Object],default:``},alphaLeadingClass:{type:[String,Array,Object],default:void 0},startTrailingClass:{type:[String,Array,Object],default:``},alphaTrailingClass:{type:[String,Array,Object],default:void 0},alphaLabelClass:{type:[String,Array,Object],default:void 0},startDisabled:{type:Boolean,default:!1},alphaDisabled:{type:Boolean,default:null},startLoading:{type:Boolean,default:!1},alphaLoading:{type:Boolean,default:null},startTooltipText:{type:String,default:void 0},alphaTooltipText:{type:String,default:void 0},assertiveOnFocus:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},dropdownPlacement:{type:String,default:`bottom-end`},importance:{type:String,default:`primary`,validator:e=>Object.keys(r.BUTTON_IMPORTANCE_MODIFIERS).includes(e)},kind:{type:String,default:`default`,validator:e=>Object.keys(r.BUTTON_KIND_MODIFIERS).includes(e)},endActive:{type:Boolean,default:!1},omegaActive:{type:Boolean,default:null},endAriaLabel:{type:String,default:null},omegaAriaLabel:{type:String,default:void 0},endDisabled:{type:Boolean,default:!1},omegaDisabled:{type:Boolean,default:null},endId:{type:String,default:void 0},omegaId:{type:String,default:void 0},endTooltipText:{type:String,default:void 0},omegaTooltipText:{type:String,default:void 0},size:{type:[String,Number],default:300,validator:e.ordinalSizeValidator(r.BUTTON_SIZE_MODIFIERS)},width:{type:String,default:null},showDivider:{type:Boolean,default:!0},startTo:{type:[String,Object],default:null},startReplace:{type:Boolean,default:!1},startHref:{type:String,default:null},startTarget:{type:String,default:null},startRel:{type:String,default:null}},emits:[`start-clicked`,`alpha-clicked`,`end-clicked`,`omega-clicked`],data(){return{isDropdownOpen:!1}},computed:{startButtonProps(){return{active:this.alphaActive??this.startActive,ariaLabel:this.alphaAriaLabel??this.startAriaLabel,assertiveOnFocus:this.assertiveOnFocus,disabled:this.disabled||(this.alphaDisabled??this.startDisabled),iconPosition:this.alphaIconPosition??this.startIconPosition,labelClass:this.alphaLabelClass??this.startLabelClass,leadingClass:this.alphaLeadingClass??this.startLeadingClass,trailingClass:this.alphaTrailingClass??this.startTrailingClass,loading:this.alphaLoading??this.startLoading,importance:this.importance,kind:this.kind,size:this.size,tooltipText:this.alphaTooltipText??this.startTooltipText,to:this.startTo,replace:this.startReplace,href:this.startHref,target:this.startTarget,rel:this.startRel,class:this.$attrs.class,style:this.$attrs.style}},endButtonProps(){return{id:this.omegaId??this.endId,active:this.omegaActive??this.endActive,ariaLabel:this.omegaAriaLabel??this.endAriaLabel,disabled:this.disabled||(this.omegaDisabled??this.endDisabled),importance:this.importance,kind:this.kind,size:this.size,tooltipText:this.omegaTooltipText??this.endTooltipText,class:this.$attrs.class,style:this.$attrs.style}}},created(){this.validateProps()},updated(){this.validateProps()},mounted(){t.warnIfUnmounted(t.returnFirstEl(this.$el),this.$options.name)},methods:{onStartClick(){this.$emit(`start-clicked`),this.$emit(`alpha-clicked`)},onEndClick(){this.$emit(`end-clicked`),this.$emit(`omega-clicked`)},validateProps(){this.validateStartButtonProps(),this.validateEndButtonProps(),this.validateShowDivider()},validateStartButtonProps(){t.hasSlotContent(this.$slots.default)||(t.hasSlotContent(this.$slots.startIcon)||t.hasSlotContent(this.$slots.alphaIcon))&&!(this.alphaTooltipText??this.startTooltipText)&&console.warn(`start-tooltip-text prop must be set if start button has an icon only`)},validateEndButtonProps(){t.hasSlotContent(this.$slots.end)||t.hasSlotContent(this.$slots.omega)||(this.omegaTooltipText??this.endTooltipText)||console.warn(`end-tooltip-text prop is required as it is an icon-only button`)},validateShowDivider(){!this.showDivider&&this.importance!==`clear`&&console.warn(`show-divider prop set to false has no effect when importance is not "clear". The divider is always shown for "outlined" and "primary" importances.`)}}};function l(e,t,n,r,i,a){let o=(0,s.resolveComponent)(`split-button-start`),c=(0,s.resolveComponent)(`split-button-end`),l=(0,s.resolveComponent)(`dt-dropdown`);return(0,s.openBlock)(),(0,s.createElementBlock)(`span`,{"data-qa":`dt-split-button`,class:(0,s.normalizeClass)([`d-split-btn`,{"d-split-btn--no-divider":!n.showDivider&&n.importance===`clear`},e.$attrs.class]),style:(0,s.normalizeStyle)([e.$attrs.style,{width:n.width}])},[(0,s.createVNode)(o,(0,s.mergeProps)(a.startButtonProps,{ref:`startButton`,onClick:a.onStartClick}),(0,s.createSlots)({default:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`default`)]),_:2},[e.$slots.startEndIcon?{name:`startIcon`,fn:(0,s.withCtx)(({size:t})=>[e.$slots.startIcon?(0,s.renderSlot)(e.$slots,`startIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`alphaIcon`,{key:1,size:t})]),key:`0`}:void 0,e.$slots.startEndIcon?{name:`endIcon`,fn:(0,s.withCtx)(({size:t})=>[(0,s.renderSlot)(e.$slots,`startEndIcon`,{size:t})]),key:`1`}:void 0,e.$slots.startEndIcon?void 0:{name:`icon`,fn:(0,s.withCtx)(({size:t})=>[e.$slots.startIcon?(0,s.renderSlot)(e.$slots,`startIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`alphaIcon`,{key:1,size:t})]),key:`2`},e.$slots.leading?{name:`leading`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`leading`)]),key:`3`}:void 0,e.$slots.trailing?{name:`trailing`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`trailing`)]),key:`4`}:void 0]),1040,[`onClick`]),e.$slots.end?(0,s.renderSlot)(e.$slots,`end`,{key:0}):e.$slots.omega?(0,s.renderSlot)(e.$slots,`omega`,{key:1}):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:2},[e.$slots.dropdownList?((0,s.openBlock)(),(0,s.createBlock)(l,{key:0,placement:n.dropdownPlacement,onClick:t[0]||(t[0]=e=>i.isDropdownOpen=!0),onOpened:t[1]||(t[1]=e=>i.isDropdownOpen=e)},{anchor:(0,s.withCtx)(t=>[(0,s.createVNode)(c,(0,s.mergeProps)({...t,...a.endButtonProps},{active:i.isDropdownOpen,onClick:a.onEndClick}),{icon:(0,s.withCtx)(({size:t})=>[e.$slots.endIcon?(0,s.renderSlot)(e.$slots,`endIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`omegaIcon`,{key:1,size:t})]),_:3},16,[`active`,`onClick`])]),list:(0,s.withCtx)(({close:t})=>[(0,s.renderSlot)(e.$slots,`dropdownList`,{close:t})]),_:3},8,[`placement`])):((0,s.openBlock)(),(0,s.createBlock)(c,(0,s.mergeProps)({key:1},a.endButtonProps,{onClick:a.onEndClick}),{icon:(0,s.withCtx)(({size:t})=>[e.$slots.endIcon?(0,s.renderSlot)(e.$slots,`endIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`omegaIcon`,{key:1,size:t})]),_:3},16,[`onClick`]))],64))],6)}var u=n.t(c,[[`render`,l]]);exports.default=u;
2
2
  //# sourceMappingURL=split-button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"split-button.cjs","names":[],"sources":["../../../components/SplitButton/SplitButton.vue"],"sourcesContent":["<template>\n <span\n data-qa=\"dt-split-button\"\n :class=\"['d-split-btn', { 'd-split-btn--no-divider': !showDivider && importance === 'clear' }, $attrs.class]\"\n :style=\"[$attrs.style, { width }]\"\n >\n <split-button-start\n v-bind=\"startButtonProps\"\n ref=\"startButton\"\n @click=\"onStartClick\"\n >\n <!-- Dual-icon path: when startEndIcon is provided, use DtButton's startIcon/endIcon -->\n <template\n v-if=\"$slots.startEndIcon\"\n #startIcon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.startEndIcon\"\n #endIcon=\"{ size: iconSize }\"\n >\n <!-- @slot End-positioned icon within the start button (enables dual icons on the start button) -->\n <slot\n name=\"startEndIcon\"\n :size=\"iconSize\"\n />\n </template>\n <!-- Legacy single-icon path: uses DtButton's icon slot with iconPosition -->\n <template\n v-if=\"!$slots.startEndIcon\"\n #icon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.leading\"\n #leading\n >\n <!-- @slot Leading slot, forwarded to the alpha button's leading slot -->\n <slot name=\"leading\" />\n </template>\n <template\n v-if=\"$slots.trailing\"\n #trailing\n >\n <!-- @slot Trailing slot, forwarded to the alpha button's trailing slot -->\n <slot name=\"trailing\" />\n </template>\n <!-- @slot Default content slot -->\n <slot name=\"default\" />\n </split-button-start>\n <!-- @slot End (right) content slot, overrides end button styling and functionality completely -->\n <template v-if=\"$slots.end\">\n <slot name=\"end\" />\n </template>\n <!-- @slot @deprecated Use end -->\n <template v-else-if=\"$slots.omega\">\n <slot name=\"omega\" />\n </template>\n <template v-else>\n <dt-dropdown\n v-if=\"$slots.dropdownList\"\n :placement=\"dropdownPlacement\"\n @click=\"isDropdownOpen = true\"\n @opened=\"open => isDropdownOpen = open\"\n >\n <template #anchor=\"attrs\">\n <split-button-end\n v-bind=\"{ ...attrs, ...endButtonProps }\"\n :active=\"isDropdownOpen\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n <template #list=\"{ close }\">\n <!-- @slot Built-in dropdown content slot, use of dt-list-item is highly recommended here. -->\n <slot\n name=\"dropdownList\"\n :close=\"close\"\n />\n </template>\n </dt-dropdown>\n\n <split-button-end\n v-else\n v-bind=\"endButtonProps\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n </span>\n</template>\n\n<script>\nimport {\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_SIZE_MODIFIERS,\n ICON_POSITION_MODIFIERS,\n} from '@/components/Button';\nimport SplitButtonStart from './SplitButtonStart.vue';\nimport SplitButtonEnd from './SplitButtonEnd.vue';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { hasSlotContent, warnIfUnmounted, returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtSplitButton',\n\n components: {\n SplitButtonEnd,\n DtDropdown,\n SplitButtonStart,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the start button should have active styling\n * @values true, false\n */\n startActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startActive\n * @values true, false\n */\n alphaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the start button\n */\n startAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use startAriaLabel\n */\n alphaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * The position of the icon slot within the start button.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n startIconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * @deprecated Use startIconPosition\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n alphaIconPosition: {\n type: String,\n default: undefined,\n validator: (position) => position === undefined || Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * Used to customize the start label container\n */\n startLabelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start button leading container\n */\n startLeadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startLeadingClass\n */\n alphaLeadingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Used to customize the start button trailing container\n */\n startTrailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startTrailingClass\n */\n alphaTrailingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * @deprecated Use startLabelClass\n */\n alphaLabelClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for start button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n startDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startDisabled\n * @values true, false\n */\n alphaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Whether the start button should display a loading animation or not.\n * @values true, false\n */\n startLoading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startLoading\n * @values true, false\n */\n alphaLoading: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use startTooltipText\n */\n alphaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute for both buttons.\n * Use startDisabled or endDisabled to disable buttons individually.\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n dropdownPlacement: {\n type: String,\n default: 'bottom-end',\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * The color of the button.\n * @values default, unstyled, muted, critical, positive\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether the end button should have active styling\n * @values true, false\n */\n endActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endActive\n * @values true, false\n */\n omegaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the end button\n */\n endAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use endAriaLabel\n */\n omegaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for end button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n endDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endDisabled\n * @values true, false\n */\n omegaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover.\n */\n endId: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endId\n */\n omegaId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endTooltipText\n */\n omegaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (s) => Object.keys(BUTTON_SIZE_MODIFIERS).includes(String(s)),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n\n /**\n * Whether to show the vertical divider between the start and end buttons.\n * Only applies when importance is \"clear\".\n * @values true, false\n */\n showDivider: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Vue router `to` prop for the start button.\n * When set, renders the start button as a `<router-link>`.\n */\n startTo: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * Whether to use `router.replace()` instead of `router.push()`\n * when navigating via `startTo`.\n * @values true, false\n */\n startReplace: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML href for the start button.\n * When set, renders the start button as an `<a>` element.\n */\n startHref: {\n type: String,\n default: null,\n },\n\n /**\n * HTML target attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startTarget: {\n type: String,\n default: null,\n },\n\n /**\n * HTML rel attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startRel: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Native start button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'start-clicked',\n\n /**\n * @deprecated Use start-clicked\n */\n 'alpha-clicked',\n\n /**\n * Native end button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'end-clicked',\n\n /**\n * @deprecated Use end-clicked\n */\n 'omega-clicked',\n ],\n\n data () {\n return {\n isDropdownOpen: false,\n };\n },\n\n computed: {\n startButtonProps () {\n return {\n active: this.alphaActive ?? this.startActive,\n ariaLabel: this.alphaAriaLabel ?? this.startAriaLabel,\n assertiveOnFocus: this.assertiveOnFocus,\n disabled: this.disabled || (this.alphaDisabled ?? this.startDisabled),\n iconPosition: this.alphaIconPosition ?? this.startIconPosition,\n labelClass: this.alphaLabelClass ?? this.startLabelClass,\n leadingClass: this.alphaLeadingClass ?? this.startLeadingClass,\n trailingClass: this.alphaTrailingClass ?? this.startTrailingClass,\n loading: this.alphaLoading ?? this.startLoading,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.alphaTooltipText ?? this.startTooltipText,\n to: this.startTo,\n replace: this.startReplace,\n href: this.startHref,\n target: this.startTarget,\n rel: this.startRel,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n\n endButtonProps () {\n return {\n id: this.omegaId ?? this.endId,\n active: this.omegaActive ?? this.endActive,\n ariaLabel: this.omegaAriaLabel ?? this.endAriaLabel,\n disabled: this.disabled || (this.omegaDisabled ?? this.endDisabled),\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.omegaTooltipText ?? this.endTooltipText,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n },\n\n created () {\n this.validateProps();\n },\n\n updated () {\n this.validateProps();\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n onStartClick () {\n this.$emit('start-clicked');\n this.$emit('alpha-clicked');\n },\n\n onEndClick () {\n this.$emit('end-clicked');\n this.$emit('omega-clicked');\n },\n\n validateProps () {\n this.validateStartButtonProps();\n this.validateEndButtonProps();\n this.validateShowDivider();\n },\n\n validateStartButtonProps () {\n if (hasSlotContent(this.$slots.default)) return;\n\n if ((hasSlotContent(this.$slots.startIcon) || hasSlotContent(this.$slots.alphaIcon)) &&\n !(this.alphaTooltipText ?? this.startTooltipText)) {\n console.warn('start-tooltip-text prop must be set if start button has an icon only');\n }\n },\n\n validateEndButtonProps () {\n if (hasSlotContent(this.$slots.end) || hasSlotContent(this.$slots.omega)) return;\n\n if (!(this.omegaTooltipText ?? this.endTooltipText)) {\n console.warn('end-tooltip-text prop is required as it is an icon-only button');\n }\n },\n\n validateShowDivider () {\n if (!this.showDivider && this.importance !== 'clear') {\n console.warn(\n 'show-divider prop set to false has no effect when importance is not \"clear\". ' +\n 'The divider is always shown for \"outlined\" and \"primary\" importances.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"split-button.cjs","names":[],"sources":["../../../components/SplitButton/SplitButton.vue"],"sourcesContent":["<template>\n <span\n data-qa=\"dt-split-button\"\n :class=\"['d-split-btn', { 'd-split-btn--no-divider': !showDivider && importance === 'clear' }, $attrs.class]\"\n :style=\"[$attrs.style, { width }]\"\n >\n <split-button-start\n v-bind=\"startButtonProps\"\n ref=\"startButton\"\n @click=\"onStartClick\"\n >\n <!-- Dual-icon path: when startEndIcon is provided, use DtButton's startIcon/endIcon -->\n <template\n v-if=\"$slots.startEndIcon\"\n #startIcon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.startEndIcon\"\n #endIcon=\"{ size: iconSize }\"\n >\n <!-- @slot End-positioned icon within the start button (enables dual icons on the start button) -->\n <slot\n name=\"startEndIcon\"\n :size=\"iconSize\"\n />\n </template>\n <!-- Legacy single-icon path: uses DtButton's icon slot with iconPosition -->\n <template\n v-if=\"!$slots.startEndIcon\"\n #icon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.leading\"\n #leading\n >\n <!-- @slot Leading slot, forwarded to the alpha button's leading slot -->\n <slot name=\"leading\" />\n </template>\n <template\n v-if=\"$slots.trailing\"\n #trailing\n >\n <!-- @slot Trailing slot, forwarded to the alpha button's trailing slot -->\n <slot name=\"trailing\" />\n </template>\n <!-- @slot Default content slot -->\n <slot name=\"default\" />\n </split-button-start>\n <!-- @slot End (right) content slot, overrides end button styling and functionality completely -->\n <template v-if=\"$slots.end\">\n <slot name=\"end\" />\n </template>\n <!-- @slot @deprecated Use end -->\n <template v-else-if=\"$slots.omega\">\n <slot name=\"omega\" />\n </template>\n <template v-else>\n <dt-dropdown\n v-if=\"$slots.dropdownList\"\n :placement=\"dropdownPlacement\"\n @click=\"isDropdownOpen = true\"\n @opened=\"open => isDropdownOpen = open\"\n >\n <template #anchor=\"attrs\">\n <split-button-end\n v-bind=\"{ ...attrs, ...endButtonProps }\"\n :active=\"isDropdownOpen\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n <template #list=\"{ close }\">\n <!-- @slot Built-in dropdown content slot, use of dt-list-item is highly recommended here. -->\n <slot\n name=\"dropdownList\"\n :close=\"close\"\n />\n </template>\n </dt-dropdown>\n\n <split-button-end\n v-else\n v-bind=\"endButtonProps\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n </span>\n</template>\n\n<script>\nimport {\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_SIZE_MODIFIERS,\n ICON_POSITION_MODIFIERS,\n} from '@/components/Button';\nimport SplitButtonStart from './SplitButtonStart.vue';\nimport SplitButtonEnd from './SplitButtonEnd.vue';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { hasSlotContent, warnIfUnmounted, returnFirstEl } from '@/common/utils';\nimport { ordinalSizeValidator } from '@/common/validators';\n\nexport default {\n name: 'DtSplitButton',\n\n components: {\n SplitButtonEnd,\n DtDropdown,\n SplitButtonStart,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the start button should have active styling\n * @values true, false\n */\n startActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startActive\n * @values true, false\n */\n alphaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the start button\n */\n startAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use startAriaLabel\n */\n alphaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * The position of the icon slot within the start button.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n startIconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * @deprecated Use startIconPosition\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n alphaIconPosition: {\n type: String,\n default: undefined,\n validator: (position) => position === undefined || Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * Used to customize the start label container\n */\n startLabelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start button leading container\n */\n startLeadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startLeadingClass\n */\n alphaLeadingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Used to customize the start button trailing container\n */\n startTrailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startTrailingClass\n */\n alphaTrailingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * @deprecated Use startLabelClass\n */\n alphaLabelClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for start button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n startDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startDisabled\n * @values true, false\n */\n alphaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Whether the start button should display a loading animation or not.\n * @values true, false\n */\n startLoading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startLoading\n * @values true, false\n */\n alphaLoading: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use startTooltipText\n */\n alphaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute for both buttons.\n * Use startDisabled or endDisabled to disable buttons individually.\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n dropdownPlacement: {\n type: String,\n default: 'bottom-end',\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * The color of the button.\n * @values default, unstyled, muted, critical, positive\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether the end button should have active styling\n * @values true, false\n */\n endActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endActive\n * @values true, false\n */\n omegaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the end button\n */\n endAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use endAriaLabel\n */\n omegaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for end button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n endDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endDisabled\n * @values true, false\n */\n omegaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover.\n */\n endId: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endId\n */\n omegaId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endTooltipText\n */\n omegaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(BUTTON_SIZE_MODIFIERS),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n\n /**\n * Whether to show the vertical divider between the start and end buttons.\n * Only applies when importance is \"clear\".\n * @values true, false\n */\n showDivider: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Vue router `to` prop for the start button.\n * When set, renders the start button as a `<router-link>`.\n */\n startTo: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * Whether to use `router.replace()` instead of `router.push()`\n * when navigating via `startTo`.\n * @values true, false\n */\n startReplace: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML href for the start button.\n * When set, renders the start button as an `<a>` element.\n */\n startHref: {\n type: String,\n default: null,\n },\n\n /**\n * HTML target attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startTarget: {\n type: String,\n default: null,\n },\n\n /**\n * HTML rel attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startRel: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Native start button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'start-clicked',\n\n /**\n * @deprecated Use start-clicked\n */\n 'alpha-clicked',\n\n /**\n * Native end button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'end-clicked',\n\n /**\n * @deprecated Use end-clicked\n */\n 'omega-clicked',\n ],\n\n data () {\n return {\n isDropdownOpen: false,\n };\n },\n\n computed: {\n startButtonProps () {\n return {\n active: this.alphaActive ?? this.startActive,\n ariaLabel: this.alphaAriaLabel ?? this.startAriaLabel,\n assertiveOnFocus: this.assertiveOnFocus,\n disabled: this.disabled || (this.alphaDisabled ?? this.startDisabled),\n iconPosition: this.alphaIconPosition ?? this.startIconPosition,\n labelClass: this.alphaLabelClass ?? this.startLabelClass,\n leadingClass: this.alphaLeadingClass ?? this.startLeadingClass,\n trailingClass: this.alphaTrailingClass ?? this.startTrailingClass,\n loading: this.alphaLoading ?? this.startLoading,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.alphaTooltipText ?? this.startTooltipText,\n to: this.startTo,\n replace: this.startReplace,\n href: this.startHref,\n target: this.startTarget,\n rel: this.startRel,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n\n endButtonProps () {\n return {\n id: this.omegaId ?? this.endId,\n active: this.omegaActive ?? this.endActive,\n ariaLabel: this.omegaAriaLabel ?? this.endAriaLabel,\n disabled: this.disabled || (this.omegaDisabled ?? this.endDisabled),\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.omegaTooltipText ?? this.endTooltipText,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n },\n\n created () {\n this.validateProps();\n },\n\n updated () {\n this.validateProps();\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n onStartClick () {\n this.$emit('start-clicked');\n this.$emit('alpha-clicked');\n },\n\n onEndClick () {\n this.$emit('end-clicked');\n this.$emit('omega-clicked');\n },\n\n validateProps () {\n this.validateStartButtonProps();\n this.validateEndButtonProps();\n this.validateShowDivider();\n },\n\n validateStartButtonProps () {\n if (hasSlotContent(this.$slots.default)) return;\n\n if ((hasSlotContent(this.$slots.startIcon) || hasSlotContent(this.$slots.alphaIcon)) &&\n !(this.alphaTooltipText ?? this.startTooltipText)) {\n console.warn('start-tooltip-text prop must be set if start button has an icon only');\n }\n },\n\n validateEndButtonProps () {\n if (hasSlotContent(this.$slots.end) || hasSlotContent(this.$slots.omega)) return;\n\n if (!(this.omegaTooltipText ?? this.endTooltipText)) {\n console.warn('end-tooltip-text prop is required as it is an icon-only button');\n }\n },\n\n validateShowDivider () {\n if (!this.showDivider && this.importance !== 'clear') {\n console.warn(\n 'show-divider prop set to false has no effect when importance is not \"clear\". ' +\n 'The divider is always shown for \"outlined\" and \"primary\" importances.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}