@dialpad/dialtone-vue 3.223.0-next.3 → 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 (387) 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/TextList-B6XFfQfD.js +88 -0
  6. package/dist/TextList-B6XFfQfD.js.map +1 -0
  7. package/dist/TextList-Dd-ROFiI.cjs +2 -0
  8. package/dist/TextList-Dd-ROFiI.cjs.map +1 -0
  9. package/dist/TextListItem-DIlrCkaM.cjs +2 -0
  10. package/dist/TextListItem-DIlrCkaM.cjs.map +1 -0
  11. package/dist/TextListItem-ImUi_FWh.js +62 -0
  12. package/dist/TextListItem-ImUi_FWh.js.map +1 -0
  13. package/dist/{Toast-CHbVmbBg.js → Toast-BIHkIpZP.js} +95 -94
  14. package/dist/Toast-BIHkIpZP.js.map +1 -0
  15. package/dist/Toast-D8ARDEgT.cjs +2 -0
  16. package/dist/Toast-D8ARDEgT.cjs.map +1 -0
  17. package/dist/{attachment_carousel-BFIAXWOZ.js → attachment_carousel-CyiexPBk.js} +1 -1
  18. package/dist/{attachment_carousel-BFIAXWOZ.js.map → attachment_carousel-CyiexPBk.js.map} +1 -1
  19. package/dist/{attachment_carousel-BJxqNJ5T.cjs → attachment_carousel-DJqILY7f.cjs} +1 -1
  20. package/dist/{attachment_carousel-BJxqNJ5T.cjs.map → attachment_carousel-DJqILY7f.cjs.map} +1 -1
  21. package/dist/common/mixins/input.d.ts +4 -4
  22. package/dist/common/mixins/input_group.d.ts +2 -2
  23. package/dist/common/sr_only_close_button.vue.d.ts +30 -30
  24. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  25. package/dist/common/validators/index.cjs +1 -1
  26. package/dist/common/validators/index.cjs.map +1 -1
  27. package/dist/common/validators/index.d.ts +2 -0
  28. package/dist/common/validators/index.d.ts.map +1 -1
  29. package/dist/common/validators/index.js +9 -2
  30. package/dist/common/validators/index.js.map +1 -1
  31. package/dist/component-documentation.json +1 -1
  32. package/dist/components/Avatar/Avatar.vue.d.ts +10 -10
  33. package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
  34. package/dist/components/Badge/Badge.vue.d.ts +13 -13
  35. package/dist/components/Banner/Banner.vue.d.ts +106 -106
  36. package/dist/components/Banner/Banner.vue.d.ts.map +1 -1
  37. package/dist/components/Box/Box.vue.d.ts +18 -0
  38. package/dist/components/Box/Box.vue.d.ts.map +1 -1
  39. package/dist/components/Box/BoxConstants.d.ts +4 -0
  40. package/dist/components/Box/BoxConstants.d.ts.map +1 -1
  41. package/dist/components/Box/Validators.d.ts +4 -0
  42. package/dist/components/Box/Validators.d.ts.map +1 -1
  43. package/dist/components/Box/index.d.ts +1 -1
  44. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts +1 -0
  45. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts.map +1 -1
  46. package/dist/components/Breadcrumbs/Breadcrumbs.vue.d.ts +3 -2
  47. package/dist/components/Button/Button.vue.d.ts +25 -25
  48. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  49. package/dist/components/Card/Card.vue.d.ts +6 -6
  50. package/dist/components/Checkbox/Checkbox.vue.d.ts +26 -26
  51. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  52. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +46 -46
  53. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -1
  54. package/dist/components/Chip/Chip.vue.d.ts +40 -40
  55. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  56. package/dist/components/Codeblock/Codeblock.vue.d.ts +2 -2
  57. package/dist/components/Collapsible/Collapsible.vue.d.ts +39 -39
  58. package/dist/components/Collapsible/Collapsible.vue.d.ts.map +1 -1
  59. package/dist/components/Combobox/Combobox.vue.d.ts +66 -66
  60. package/dist/components/Combobox/Combobox.vue.d.ts.map +1 -1
  61. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts +29 -29
  62. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts.map +1 -1
  63. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts +35 -35
  64. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts.map +1 -1
  65. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts +216 -216
  66. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts.map +1 -1
  67. package/dist/components/DescriptionList/DescriptionList.vue.d.ts +4 -4
  68. package/dist/components/Dropdown/Dropdown.vue.d.ts +82 -82
  69. package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  70. package/dist/components/Emoji/Emoji.vue.d.ts +17 -17
  71. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts +37 -37
  72. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts.map +1 -1
  73. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts +37 -37
  74. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts.map +1 -1
  75. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts +24 -24
  76. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts.map +1 -1
  77. package/dist/components/EmptyState/EmptyState.vue.d.ts.map +1 -1
  78. package/dist/components/FilterPill/FilterPill.vue.d.ts +308 -308
  79. package/dist/components/FilterPill/FilterPill.vue.d.ts.map +1 -1
  80. package/dist/components/Hovercard/Hovercard.vue.d.ts +156 -156
  81. package/dist/components/Hovercard/Hovercard.vue.d.ts.map +1 -1
  82. package/dist/components/Icon/Icon.vue.d.ts +7 -7
  83. package/dist/components/ImageViewer/ImageViewer.vue.d.ts +60 -60
  84. package/dist/components/ImageViewer/ImageViewer.vue.d.ts.map +1 -1
  85. package/dist/components/Input/Input.vue.d.ts +37 -37
  86. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  87. package/dist/components/InputGroup/InputGroup.vue.d.ts +46 -46
  88. package/dist/components/InputGroup/InputGroup.vue.d.ts.map +1 -1
  89. package/dist/components/ItemLayout/ItemLayout.vue.d.ts +20 -20
  90. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts +80 -80
  91. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts.map +1 -1
  92. package/dist/components/Link/Link.vue.d.ts +1 -0
  93. package/dist/components/Link/LinkConstants.d.ts +3 -0
  94. package/dist/components/Link/LinkConstants.d.ts.map +1 -1
  95. package/dist/components/ListItem/ListItem.vue.d.ts +27 -27
  96. package/dist/components/ListItem/ListItem.vue.d.ts.map +1 -1
  97. package/dist/components/ListItemGroup/ListItemGroup.vue.d.ts +4 -4
  98. package/dist/components/Loader/Loader.vue.d.ts +7 -7
  99. package/dist/components/Modal/Modal.vue.d.ts +79 -85
  100. package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
  101. package/dist/components/Modal/ModalConstants.d.ts +0 -5
  102. package/dist/components/Modal/index.d.ts +1 -1
  103. package/dist/components/Notice/Notice.vue.d.ts +106 -106
  104. package/dist/components/Notice/Notice.vue.d.ts.map +1 -1
  105. package/dist/components/Notice/NoticeAction.vue.d.ts +62 -62
  106. package/dist/components/Notice/NoticeAction.vue.d.ts.map +1 -1
  107. package/dist/components/Notice/NoticeContent.vue.d.ts +4 -4
  108. package/dist/components/Notice/NoticeIcon.vue.d.ts +32 -32
  109. package/dist/components/Notice/NoticeIcon.vue.d.ts.map +1 -1
  110. package/dist/components/Pagination/Pagination.vue.d.ts +40 -40
  111. package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
  112. package/dist/components/Popover/Popover.vue.d.ts +78 -78
  113. package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
  114. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts +34 -34
  115. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts.map +1 -1
  116. package/dist/components/ProgressCircle/ProgressCircle.vue.d.ts +7 -7
  117. package/dist/components/Prose/Prose.vue.d.ts.map +1 -1
  118. package/dist/components/Radio/Radio.vue.d.ts +26 -26
  119. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  120. package/dist/components/RadioGroup/RadioGroup.vue.d.ts +46 -46
  121. package/dist/components/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
  122. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts +6 -5
  123. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts.map +1 -1
  124. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts +10 -10
  125. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts.map +1 -1
  126. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiComponent.vue.d.ts +17 -17
  127. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiSuggestion.vue.d.ts +17 -17
  128. package/dist/components/RichTextEditor/Extensions/Mentions/MentionComponent.vue.d.ts +1 -0
  129. package/dist/components/RichTextEditor/Extensions/Mentions/MentionSuggestion.vue.d.ts +10 -10
  130. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts +27 -27
  131. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts.map +1 -1
  132. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts +153 -153
  133. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts.map +1 -1
  134. package/dist/components/RootLayout/RootLayout.vue.d.ts +10 -10
  135. package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
  136. package/dist/components/SelectMenu/SelectMenu.vue.d.ts +33 -33
  137. package/dist/components/SelectMenu/SelectMenu.vue.d.ts.map +1 -1
  138. package/dist/components/Skeleton/Skeleton.vue.d.ts +8 -8
  139. package/dist/components/Skeleton/SkeletonListItem.vue.d.ts +4 -4
  140. package/dist/components/Skeleton/SkeletonParagraph.vue.d.ts +2 -2
  141. package/dist/components/Skeleton/SkeletonShape.vue.d.ts +2 -2
  142. package/dist/components/SplitButton/SplitButton.vue.d.ts +157 -157
  143. package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
  144. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts +30 -30
  145. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts.map +1 -1
  146. package/dist/components/SplitButton/SplitButtonStart.vue.d.ts +31 -31
  147. package/dist/components/Tab/Tab.vue.d.ts +33 -33
  148. package/dist/components/Tab/TabGroup.vue.d.ts +6 -6
  149. package/dist/components/Tab/TabPanel.vue.d.ts +2 -2
  150. package/dist/components/TextList/TextList.vue.d.ts +87 -0
  151. package/dist/components/TextList/TextList.vue.d.ts.map +1 -0
  152. package/dist/components/TextList/TextListConstants.d.ts +20 -0
  153. package/dist/components/TextList/TextListConstants.d.ts.map +1 -0
  154. package/dist/components/TextList/TextListItem.vue.d.ts +60 -0
  155. package/dist/components/TextList/TextListItem.vue.d.ts.map +1 -0
  156. package/dist/components/TextList/Validators.d.ts +5 -0
  157. package/dist/components/TextList/Validators.d.ts.map +1 -0
  158. package/dist/components/TextList/index.d.ts +4 -0
  159. package/dist/components/TextList/index.d.ts.map +1 -0
  160. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts +108 -108
  161. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts.map +1 -1
  162. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts +34 -34
  163. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts.map +1 -1
  164. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts +106 -106
  165. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts.map +1 -1
  166. package/dist/components/Toast/Toast.vue.d.ts +436 -436
  167. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  168. package/dist/components/Toggle/Toggle.vue.d.ts +4 -4
  169. package/dist/components/Toggle/Toggle.vue.d.ts.map +1 -1
  170. package/dist/components/Tooltip/Tooltip.vue.d.ts +4 -4
  171. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts +22 -22
  172. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts.map +1 -1
  173. package/dist/dialtone-vue.cjs +1 -1
  174. package/dist/dialtone-vue.js +134 -130
  175. package/dist/index.d.ts +1 -0
  176. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  177. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  178. package/dist/lib/attachment-carousel/index.cjs +1 -1
  179. package/dist/lib/attachment-carousel/index.js +1 -1
  180. package/dist/lib/avatar/avatar.cjs +1 -1
  181. package/dist/lib/avatar/avatar.cjs.map +1 -1
  182. package/dist/lib/avatar/avatar.js +55 -54
  183. package/dist/lib/avatar/avatar.js.map +1 -1
  184. package/dist/lib/badge/badge.cjs +1 -1
  185. package/dist/lib/badge/badge.cjs.map +1 -1
  186. package/dist/lib/badge/badge.js +36 -35
  187. package/dist/lib/badge/badge.js.map +1 -1
  188. package/dist/lib/box/box-constants.cjs +1 -1
  189. package/dist/lib/box/box-constants.cjs.map +1 -1
  190. package/dist/lib/box/box-constants.js +34 -7
  191. package/dist/lib/box/box-constants.js.map +1 -1
  192. package/dist/lib/box/box.cjs +1 -1
  193. package/dist/lib/box/box.cjs.map +1 -1
  194. package/dist/lib/box/box.js +93 -34
  195. package/dist/lib/box/box.js.map +1 -1
  196. package/dist/lib/box/index.cjs +1 -1
  197. package/dist/lib/box/index.js +3 -3
  198. package/dist/lib/box/validators.cjs +1 -1
  199. package/dist/lib/box/validators.cjs.map +1 -1
  200. package/dist/lib/box/validators.js +4 -4
  201. package/dist/lib/box/validators.js.map +1 -1
  202. package/dist/lib/button/button.cjs +1 -1
  203. package/dist/lib/button/button.cjs.map +1 -1
  204. package/dist/lib/button/button.js +69 -68
  205. package/dist/lib/button/button.js.map +1 -1
  206. package/dist/lib/chip/chip.cjs +1 -1
  207. package/dist/lib/chip/chip.cjs.map +1 -1
  208. package/dist/lib/chip/chip.js +36 -35
  209. package/dist/lib/chip/chip.js.map +1 -1
  210. package/dist/lib/codeblock/codeblock.cjs +1 -1
  211. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  212. package/dist/lib/codeblock/codeblock.js +11 -10
  213. package/dist/lib/codeblock/codeblock.js.map +1 -1
  214. package/dist/lib/combobox/combobox.cjs +1 -1
  215. package/dist/lib/combobox/combobox.js +1 -1
  216. package/dist/lib/combobox/index.cjs +1 -1
  217. package/dist/lib/combobox/index.js +1 -1
  218. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  219. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  220. package/dist/lib/combobox-multi-select/combobox-multi-select.js +53 -53
  221. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  222. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  223. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  224. package/dist/lib/combobox-with-popover/combobox-with-popover.js +48 -47
  225. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  226. package/dist/lib/editor/editor.cjs +1 -1
  227. package/dist/lib/editor/editor.js +1 -1
  228. package/dist/lib/emoji/emoji.cjs +1 -1
  229. package/dist/lib/emoji/emoji.cjs.map +1 -1
  230. package/dist/lib/emoji/emoji.js +25 -24
  231. package/dist/lib/emoji/emoji.js.map +1 -1
  232. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
  233. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  234. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +20 -19
  235. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  236. package/dist/lib/empty-state/empty-state.cjs +1 -1
  237. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  238. package/dist/lib/empty-state/empty-state.js +31 -30
  239. package/dist/lib/empty-state/empty-state.js.map +1 -1
  240. package/dist/lib/filter-pill/filter-pill.cjs +1 -1
  241. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -1
  242. package/dist/lib/filter-pill/filter-pill.js +73 -72
  243. package/dist/lib/filter-pill/filter-pill.js.map +1 -1
  244. package/dist/lib/icon/icon.cjs +1 -1
  245. package/dist/lib/icon/icon.cjs.map +1 -1
  246. package/dist/lib/icon/icon.js +16 -15
  247. package/dist/lib/icon/icon.js.map +1 -1
  248. package/dist/lib/input/input.cjs +1 -1
  249. package/dist/lib/input/input.cjs.map +1 -1
  250. package/dist/lib/input/input.js +64 -63
  251. package/dist/lib/input/input.js.map +1 -1
  252. package/dist/lib/link/link-constants.cjs +1 -1
  253. package/dist/lib/link/link-constants.cjs.map +1 -1
  254. package/dist/lib/link/link-constants.js +11 -9
  255. package/dist/lib/link/link-constants.js.map +1 -1
  256. package/dist/lib/link/link.cjs +1 -1
  257. package/dist/lib/link/link.cjs.map +1 -1
  258. package/dist/lib/link/link.js +17 -14
  259. package/dist/lib/link/link.js.map +1 -1
  260. package/dist/lib/loader/loader.cjs +3 -3
  261. package/dist/lib/loader/loader.cjs.map +1 -1
  262. package/dist/lib/loader/loader.js +21 -20
  263. package/dist/lib/loader/loader.js.map +1 -1
  264. package/dist/lib/message-input/index.cjs +1 -1
  265. package/dist/lib/message-input/index.js +1 -1
  266. package/dist/lib/message-input/message-input.cjs +1 -1
  267. package/dist/lib/message-input/message-input.js +1 -1
  268. package/dist/lib/modal/index.cjs +1 -1
  269. package/dist/lib/modal/index.js +3 -3
  270. package/dist/lib/modal/modal-constants.cjs +1 -1
  271. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  272. package/dist/lib/modal/modal-constants.js +1 -4
  273. package/dist/lib/modal/modal-constants.js.map +1 -1
  274. package/dist/lib/modal/modal.cjs +1 -1
  275. package/dist/lib/modal/modal.cjs.map +1 -1
  276. package/dist/lib/modal/modal.js +40 -42
  277. package/dist/lib/modal/modal.js.map +1 -1
  278. package/dist/lib/progress-circle/progress-circle.cjs +1 -1
  279. package/dist/lib/progress-circle/progress-circle.cjs.map +1 -1
  280. package/dist/lib/progress-circle/progress-circle.js +33 -32
  281. package/dist/lib/progress-circle/progress-circle.js.map +1 -1
  282. package/dist/lib/prose/prose.cjs +1 -1
  283. package/dist/lib/prose/prose.cjs.map +1 -1
  284. package/dist/lib/prose/prose.js +23 -22
  285. package/dist/lib/prose/prose.js.map +1 -1
  286. package/dist/lib/segmented-control/segmented-control.cjs +1 -1
  287. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -1
  288. package/dist/lib/segmented-control/segmented-control.js +42 -41
  289. package/dist/lib/segmented-control/segmented-control.js.map +1 -1
  290. package/dist/lib/select-menu/select-menu.cjs +1 -1
  291. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  292. package/dist/lib/select-menu/select-menu.js +48 -47
  293. package/dist/lib/select-menu/select-menu.js.map +1 -1
  294. package/dist/lib/split-button/split-button.cjs +1 -1
  295. package/dist/lib/split-button/split-button.cjs.map +1 -1
  296. package/dist/lib/split-button/split-button.js +45 -44
  297. package/dist/lib/split-button/split-button.js.map +1 -1
  298. package/dist/lib/tab/tab-group.cjs +1 -1
  299. package/dist/lib/tab/tab-group.cjs.map +1 -1
  300. package/dist/lib/tab/tab-group.js +34 -35
  301. package/dist/lib/tab/tab-group.js.map +1 -1
  302. package/dist/lib/text-list/index.cjs +1 -0
  303. package/dist/lib/text-list/index.js +4 -0
  304. package/dist/lib/text-list/text-list-constants.cjs +2 -0
  305. package/dist/lib/text-list/text-list-constants.cjs.map +1 -0
  306. package/dist/lib/text-list/text-list-constants.js +31 -0
  307. package/dist/lib/text-list/text-list-constants.js.map +1 -0
  308. package/dist/lib/text-list/text-list-item.cjs +1 -0
  309. package/dist/lib/text-list/text-list-item.js +2 -0
  310. package/dist/lib/text-list/text-list.cjs +1 -0
  311. package/dist/lib/text-list/text-list.js +2 -0
  312. package/dist/lib/text-list/validators.cjs +2 -0
  313. package/dist/lib/text-list/validators.cjs.map +1 -0
  314. package/dist/lib/text-list/validators.js +10 -0
  315. package/dist/lib/text-list/validators.js.map +1 -0
  316. package/dist/lib/toast/index.cjs +1 -1
  317. package/dist/lib/toast/index.js +1 -1
  318. package/dist/lib/toast/toast.cjs +1 -1
  319. package/dist/lib/toast/toast.js +1 -1
  320. package/dist/lib/toggle/toggle.cjs +1 -1
  321. package/dist/lib/toggle/toggle.cjs.map +1 -1
  322. package/dist/lib/toggle/toggle.js +23 -22
  323. package/dist/lib/toggle/toggle.js.map +1 -1
  324. package/dist/{message_input-DOE5NEU9.js → message_input-C6BcWqr8.js} +1 -1
  325. package/dist/{message_input-DOE5NEU9.js.map → message_input-C6BcWqr8.js.map} +1 -1
  326. package/dist/{message_input-DMyIOe4y.cjs → message_input-ftx8f8wC.cjs} +1 -1
  327. package/dist/{message_input-DMyIOe4y.cjs.map → message_input-ftx8f8wC.cjs.map} +1 -1
  328. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +33 -33
  329. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +149 -149
  330. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  331. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +147 -147
  332. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  333. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +173 -173
  334. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  335. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +40 -40
  336. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  337. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +132 -132
  338. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  339. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +97 -97
  340. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  341. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +25 -25
  342. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +107 -107
  343. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  344. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +103 -103
  345. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  346. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +636 -636
  347. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  348. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +70 -70
  349. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  350. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +66 -66
  351. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  352. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +55 -55
  353. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  354. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +55 -55
  355. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  356. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +604 -604
  357. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  358. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +109 -109
  359. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  360. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +254 -254
  361. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  362. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +149 -149
  363. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  364. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +30 -30
  365. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  366. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +30 -30
  367. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +28 -28
  368. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  369. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +72 -72
  370. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  371. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +215 -215
  372. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  373. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +176 -176
  374. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  375. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +80 -80
  376. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  377. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +181 -181
  378. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  379. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts +10 -10
  380. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  381. package/package.json +4 -4
  382. package/dist/Combobox-By01ETlj.js.map +0 -1
  383. package/dist/Combobox-D4hc1-41.cjs +0 -3
  384. package/dist/Combobox-D4hc1-41.cjs.map +0 -1
  385. package/dist/Toast-CHbVmbBg.js.map +0 -1
  386. package/dist/Toast-DX-REYXG.cjs +0 -2
  387. package/dist/Toast-DX-REYXG.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
- import { DT_BOX_AS_VALUES as e, DT_BOX_BORDER_COLOR_VALUES as t, DT_BOX_BORDER_RADIUS_VALUES as n, DT_BOX_BORDER_WIDTH_VALUES as r, DT_BOX_LAYOUT_VALUES as i, DT_BOX_OVERFLOW_VALUES as a, DT_BOX_SCROLLBAR_VALUES as o, DT_BOX_SHADOW_VALUES as s, DT_BOX_SPACING_VALUES as c, DT_BOX_SURFACE_VALUES as l } from "./box-constants.js";
1
+ import { DT_BOX_AS_VALUES as e, DT_BOX_BORDER_COLOR_VALUES as t, DT_BOX_BORDER_RADIUS_VALUES as n, DT_BOX_BORDER_WIDTH_VALUES as r, DT_BOX_INSET_SIDE_VALUES as i, DT_BOX_INSET_VALUES as a, DT_BOX_LAYOUT_VALUES as o, DT_BOX_OVERFLOW_VALUES as s, DT_BOX_POSITION_VALUES as c, DT_BOX_SCROLLBAR_VALUES as l, DT_BOX_SHADOW_VALUES as u, DT_BOX_SPACING_VALUES as d, DT_BOX_SURFACE_VALUES as f, DT_BOX_Z_INDEX_VALUES as p } from "./box-constants.js";
2
2
  //#region components/Box/Validators.js
3
- function u(e, t = []) {
3
+ function m(e, t = []) {
4
4
  return (n) => {
5
5
  if (t.includes(n) || e.includes(String(n))) return !0;
6
6
  if (process.env.NODE_ENV !== "production") {
@@ -10,8 +10,8 @@ function u(e, t = []) {
10
10
  return !1;
11
11
  };
12
12
  }
13
- var d = u(e), f = u(c), p = u(l), m = u(t), h = u(r), g = u(n), _ = u(s), v = u(i), y = u(a), b = u(o, [!0]);
13
+ var h = m(e), g = m(d), _ = m(a), v = m(i), y = m(f), b = m(t), x = m(r), S = m(n), C = m(u), w = m(c), T = m(p), E = m(o), D = m(s), O = m(l, [!0]);
14
14
  //#endregion
15
- export { d as asValidator, m as borderColorValidator, g as borderRadiusValidator, h as borderWidthValidator, v as layoutValidator, y as overflowValidator, b as scrollbarValidator, _ as shadowValidator, f as spacingValidator, p as surfaceValidator };
15
+ export { h as asValidator, b as borderColorValidator, S as borderRadiusValidator, x as borderWidthValidator, v as insetSideValidator, _ as insetValidator, E as layoutValidator, D as overflowValidator, w as positionValidator, O as scrollbarValidator, C as shadowValidator, g as spacingValidator, y as surfaceValidator, T as zIndexValidator };
16
16
 
17
17
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","names":[],"sources":["../../../components/Box/Validators.js"],"sourcesContent":["import {\n DT_BOX_AS_VALUES,\n DT_BOX_SPACING_VALUES,\n DT_BOX_SURFACE_VALUES,\n DT_BOX_BORDER_COLOR_VALUES,\n DT_BOX_BORDER_WIDTH_VALUES,\n DT_BOX_BORDER_RADIUS_VALUES,\n DT_BOX_SHADOW_VALUES,\n DT_BOX_LAYOUT_VALUES,\n DT_BOX_OVERFLOW_VALUES,\n DT_BOX_SCROLLBAR_VALUES,\n} from './BoxConstants.js';\n\n// Vue's default validator warning omits the invalid value and allowed list.\n// This factory adds a dev-only console.warn to fill that gap.\nfunction listValidator (list, extras = []) {\n return (value) => {\n if (extras.includes(value)) return true;\n if (list.includes(String(value))) return true;\n if (process.env.NODE_ENV !== 'production') {\n const allValid = [...extras.map(String), ...list].join(', ');\n \n console.warn(\n `[DtBox] Invalid prop value: \"${value}\". Valid values: ${allValid}`,\n );\n }\n return false;\n };\n}\n\nexport const asValidator = listValidator(DT_BOX_AS_VALUES);\nexport const spacingValidator = listValidator(DT_BOX_SPACING_VALUES);\nexport const surfaceValidator = listValidator(DT_BOX_SURFACE_VALUES);\nexport const borderColorValidator = listValidator(DT_BOX_BORDER_COLOR_VALUES);\nexport const borderWidthValidator = listValidator(DT_BOX_BORDER_WIDTH_VALUES);\nexport const borderRadiusValidator = listValidator(DT_BOX_BORDER_RADIUS_VALUES);\nexport const shadowValidator = listValidator(DT_BOX_SHADOW_VALUES);\nexport const layoutValidator = listValidator(DT_BOX_LAYOUT_VALUES);\nexport const overflowValidator = listValidator(DT_BOX_OVERFLOW_VALUES);\nexport const scrollbarValidator = listValidator(DT_BOX_SCROLLBAR_VALUES, [true]);\n"],"mappings":";;AAeA,SAAS,EAAe,GAAM,IAAS,EAAE,EAAE;AACzC,SAAQ,MAAU;AAEhB,MADI,EAAO,SAAS,EAAM,IACtB,EAAK,SAAS,OAAO,EAAM,CAAC,CAAE,QAAO;AACzC,MAAA,QAAA,IAAA,aAA6B,cAAc;GACzC,IAAM,IAAW,CAAC,GAAG,EAAO,IAAI,OAAO,EAAE,GAAG,EAAK,CAAC,KAAK,KAAK;AAE5D,WAAQ,KACN,gCAAgC,EAAM,mBAAmB,IAC1D;;AAEH,SAAO;;;AAIX,IAAa,IAAc,EAAc,EAAiB,EAC7C,IAAmB,EAAc,EAAsB,EACvD,IAAmB,EAAc,EAAsB,EACvD,IAAuB,EAAc,EAA2B,EAChE,IAAuB,EAAc,EAA2B,EAChE,IAAwB,EAAc,EAA4B,EAClE,IAAkB,EAAc,EAAqB,EACrD,IAAkB,EAAc,EAAqB,EACrD,IAAoB,EAAc,EAAuB,EACzD,IAAqB,EAAc,GAAyB,CAAC,GAAK,CAAC"}
1
+ {"version":3,"file":"validators.js","names":[],"sources":["../../../components/Box/Validators.js"],"sourcesContent":["import {\n DT_BOX_AS_VALUES,\n DT_BOX_SPACING_VALUES,\n DT_BOX_INSET_VALUES,\n DT_BOX_INSET_SIDE_VALUES,\n DT_BOX_SURFACE_VALUES,\n DT_BOX_BORDER_COLOR_VALUES,\n DT_BOX_BORDER_WIDTH_VALUES,\n DT_BOX_BORDER_RADIUS_VALUES,\n DT_BOX_SHADOW_VALUES,\n DT_BOX_POSITION_VALUES,\n DT_BOX_Z_INDEX_VALUES,\n DT_BOX_LAYOUT_VALUES,\n DT_BOX_OVERFLOW_VALUES,\n DT_BOX_SCROLLBAR_VALUES,\n} from './BoxConstants.js';\n\n// Vue's default validator warning omits the invalid value and allowed list.\n// This factory adds a dev-only console.warn to fill that gap.\nfunction listValidator (list, extras = []) {\n return (value) => {\n if (extras.includes(value)) return true;\n if (list.includes(String(value))) return true;\n if (process.env.NODE_ENV !== 'production') {\n const allValid = [...extras.map(String), ...list].join(', ');\n \n console.warn(\n `[DtBox] Invalid prop value: \"${value}\". Valid values: ${allValid}`,\n );\n }\n return false;\n };\n}\n\nexport const asValidator = listValidator(DT_BOX_AS_VALUES);\nexport const spacingValidator = listValidator(DT_BOX_SPACING_VALUES);\nexport const insetValidator = listValidator(DT_BOX_INSET_VALUES);\nexport const insetSideValidator = listValidator(DT_BOX_INSET_SIDE_VALUES);\nexport const surfaceValidator = listValidator(DT_BOX_SURFACE_VALUES);\nexport const borderColorValidator = listValidator(DT_BOX_BORDER_COLOR_VALUES);\nexport const borderWidthValidator = listValidator(DT_BOX_BORDER_WIDTH_VALUES);\nexport const borderRadiusValidator = listValidator(DT_BOX_BORDER_RADIUS_VALUES);\nexport const shadowValidator = listValidator(DT_BOX_SHADOW_VALUES);\nexport const positionValidator = listValidator(DT_BOX_POSITION_VALUES);\nexport const zIndexValidator = listValidator(DT_BOX_Z_INDEX_VALUES);\nexport const layoutValidator = listValidator(DT_BOX_LAYOUT_VALUES);\nexport const overflowValidator = listValidator(DT_BOX_OVERFLOW_VALUES);\nexport const scrollbarValidator = listValidator(DT_BOX_SCROLLBAR_VALUES, [true]);\n"],"mappings":";;AAmBA,SAAS,EAAe,GAAM,IAAS,EAAE,EAAE;AACzC,SAAQ,MAAU;AAEhB,MADI,EAAO,SAAS,EAAM,IACtB,EAAK,SAAS,OAAO,EAAM,CAAC,CAAE,QAAO;AACzC,MAAA,QAAA,IAAA,aAA6B,cAAc;GACzC,IAAM,IAAW,CAAC,GAAG,EAAO,IAAI,OAAO,EAAE,GAAG,EAAK,CAAC,KAAK,KAAK;AAE5D,WAAQ,KACN,gCAAgC,EAAM,mBAAmB,IAC1D;;AAEH,SAAO;;;AAIX,IAAa,IAAc,EAAc,EAAiB,EAC7C,IAAmB,EAAc,EAAsB,EACvD,IAAiB,EAAc,EAAoB,EACnD,IAAqB,EAAc,EAAyB,EAC5D,IAAmB,EAAc,EAAsB,EACvD,IAAuB,EAAc,EAA2B,EAChE,IAAuB,EAAc,EAA2B,EAChE,IAAwB,EAAc,EAA4B,EAClE,IAAkB,EAAc,EAAqB,EACrD,IAAoB,EAAc,EAAuB,EACzD,IAAkB,EAAc,EAAsB,EACtD,IAAkB,EAAc,EAAqB,EACrD,IAAoB,EAAc,EAAuB,EACzD,IAAqB,EAAc,GAAyB,CAAC,GAAK,CAAC"}
@@ -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(`../loader/loader.cjs`),r=require(`./button-constants.cjs`),i=require(`../link/link-constants.cjs`),a=require(`../../localization/index.cjs`);let o=require(`vue`);var s={name:`DtButton`,components:{DtLoader:n.default},props:{circle:{type:Boolean,default:!1},iconPosition:{type:String,default:`start`,validator:e=>Object.keys(r.ICON_POSITION_MODIFIERS).includes(e)},importance:{type:String,default:`primary`,validator:e=>Object.keys(r.BUTTON_IMPORTANCE_MODIFIERS).includes(e)},link:{type:Boolean,default:!1},linkKind:{type:String,default:`default`,validator:e=>Object.keys(i.LINK_KIND_MODIFIERS).includes(e)},linkInverted:{type:Boolean,default:!1},linkUnderline:{type:Boolean,default:!0},underline:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},type:{type:String,default:`button`,validator:e=>r.BUTTON_TYPES.includes(e)},width:{type:String,default:null},size:{type:[String,Number],default:300,validator:e=>Object.keys(r.BUTTON_SIZE_MODIFIERS).includes(String(e))},labelClass:{type:[String,Array,Object],default:``},leadingClass:{type:[String,Array,Object],default:``},trailingClass:{type:[String,Array,Object],default:``},startIconClass:{type:[String,Array,Object],default:``},endIconClass:{type:[String,Array,Object],default:``},blockStartIconClass:{type:[String,Array,Object],default:``},blockEndIconClass:{type:[String,Array,Object],default:``},iconClass:{type:[String,Array,Object],default:``},loading:{type:Boolean,default:!1},kind:{type:String,default:`default`,validator:e=>Object.keys(r.BUTTON_KIND_MODIFIERS).includes(e)},assertiveOnFocus:{type:Boolean,default:!1},active:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},target:{type:String,default:null},rel:{type:String,default:null},replace:{type:Boolean,default:!1}},emits:[`focusin`,`focusout`],data(){return{ICON_POSITION_MODIFIERS:r.ICON_POSITION_MODIFIERS,isInFocus:!1,hasSlotContent:e.hasSlotContent,i18n:new a.DialtoneLocalization}},computed:{resolvedUnderline(){return this.underline??this.linkUnderline},computedTag(){return this.to?this.resolveRouterLink():this.href?`a`:`button`},isNativeButton(){return!this.to&&!this.href},computedAttrs(){return this.to?{to:this.to,replace:this.replace,...this.disabled&&{"aria-disabled":`true`,tabindex:`-1`}}:this.href?{href:this.disabled?null:this.href,target:this.target,rel:this.rel,...this.disabled&&{"aria-disabled":`true`,tabindex:`-1`}}:{type:this.type,disabled:this.disabled}},computedListeners(){let e={focusin:e=>{this.isInFocus=this.assertiveOnFocus,this.$emit(`focusin`,e)},focusout:e=>{this.isInFocus=!1,this.$emit(`focusout`,e)}};return this.isNativeButton||(this.disabled&&(e.click=e=>{e.preventDefault(),e.stopImmediatePropagation()}),e.keydown=e=>{(e.key===` `||e.code===`Space`)&&(e.preventDefault(),this.disabled||e.target.click())}),e},computedAriaLive(){return this.assertiveOnFocus&&this.isInFocus?`assertive`:this.$attrs.ariaLive},iconSize(){return r.BUTTON_ICON_SIZES[String(this.size)]},loaderSize(){return r.BUTTON_ICON_SIZES[String(this.size)]}},watch:{$props:{deep:!0,immediate:!0,handler(){process.env.NODE_ENV!==`production`&&(this.circle&&this.link&&(0,o.warn)(`You cannot enable circle and link at the same time`,this),this.isInvalidPropCombination(this.circle,this.kind,this.importance))}}},methods:{resolveRouterLink(){try{return(0,o.resolveComponent)(`RouterLink`)}catch{return(0,o.warn)(`DtButton: "to" prop requires vue-router. Falling back to <a>.`),`a`}},buttonClasses(){return this.link?[`d-link`,i.getLinkKindModifier(this.linkKind,this.linkInverted),r.BUTTON_SIZE_MODIFIERS[String(this.size)],{"d-link--no-underline":!this.resolvedUnderline}]:this.kind===`unstyled`?[`d-btn--unstyled`]:[`d-btn`,r.BUTTON_IMPORTANCE_MODIFIERS[this.importance],r.BUTTON_KIND_MODIFIERS[this.kind],r.BUTTON_SIZE_MODIFIERS[String(this.size)],{"d-btn--circle":this.circle,"d-btn--loading":this.loading,"d-btn--icon-only":this.isIconOnly(),"d-btn--vertical":this.isVerticalIconLayout(),"d-btn--active":this.active}]},isInvalidPropCombination(e,t,n){if(this.kind===`unstyled`)return!0;for(let i of r.INVALID_COMBINATION)if(e===i.circle&&t===i.kind&&n===i.importance)return(0,o.warn)(i.message),!1;return!0},hasStartIcon(){return e.hasSlotContent(this.$slots.startIcon)},hasEndIcon(){return e.hasSlotContent(this.$slots.endIcon)},hasBlockStartIcon(){return e.hasSlotContent(this.$slots.blockStartIcon)},hasBlockEndIcon(){return e.hasSlotContent(this.$slots.blockEndIcon)},hasNewIconSlots(){return this.hasStartIcon()||this.hasEndIcon()||this.hasBlockStartIcon()||this.hasBlockEndIcon()},shouldRenderLegacyIcon(){return e.hasSlotContent(this.$slots.icon)&&!this.hasNewIconSlots()&&!this.link},isIconOnly(){return(this.hasNewIconSlots()||this.shouldRenderLegacyIcon())&&!e.hasSlotContent(this.$slots.default)},isVerticalIconLayout(){return this.isIconOnly()?!1:this.hasBlockStartIcon()||this.hasBlockEndIcon()?!0:!this.hasNewIconSlots()&&[`top`,`bottom`].includes(this.iconPosition)}}};function c(e,t,n,r,i,a){let s=(0,o.resolveComponent)(`dt-loader`);return(0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(a.computedTag),(0,o.mergeProps)({class:[`base-button__button`,a.buttonClasses()],"data-qa":`dt-button`,style:{width:n.width},"aria-live":a.computedAriaLive,"aria-label":n.loading?i.i18n.$t(`DIALTONE_LOADING`):e.$attrs[`aria-label`]},a.computedAttrs,(0,o.toHandlers)(a.computedListeners)),{default:(0,o.withCtx)(()=>[n.loading&&n.kind!==`unstyled`?((0,o.openBlock)(),(0,o.createBlock)(s,{key:0,class:`d-btn__loader`,size:a.loaderSize,"aria-hidden":`true`},null,8,[`size`])):(0,o.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.leading)?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:1,class:(0,o.normalizeClass)([`d-btn__leading`,n.leadingClass])},[(0,o.renderSlot)(e.$slots,`leading`)],2)):(0,o.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.blockStartIcon)?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:2,"data-qa":`dt-button-block-start-icon`,class:(0,o.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--top":n.kind!==`unstyled`},n.blockStartIconClass])},[(0,o.renderSlot)(e.$slots,`blockStartIcon`,{iconSize:a.iconSize})],2)):(0,o.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.startIcon)?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:3,"data-qa":`dt-button-start-icon`,class:(0,o.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--left":n.kind!==`unstyled`},n.startIconClass])},[(0,o.renderSlot)(e.$slots,`startIcon`,{iconSize:a.iconSize})],2)):(0,o.createCommentVNode)(``,!0),a.shouldRenderLegacyIcon()?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:4,"data-qa":`dt-button-icon`,class:(0,o.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,[i.ICON_POSITION_MODIFIERS[n.iconPosition]]:n.kind!==`unstyled`},n.iconClass])},[(0,o.renderSlot)(e.$slots,`icon`,{iconSize:a.iconSize})],2)):(0,o.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.default)?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:5,"data-qa":`dt-button-label`,class:(0,o.normalizeClass)([`base-button__label`,{"d-btn__label":n.kind!==`unstyled`},n.labelClass])},[(0,o.renderSlot)(e.$slots,`default`)],2)):(0,o.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.endIcon)?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:6,"data-qa":`dt-button-end-icon`,class:(0,o.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--right":n.kind!==`unstyled`},n.endIconClass])},[(0,o.renderSlot)(e.$slots,`endIcon`,{iconSize:a.iconSize})],2)):(0,o.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.blockEndIcon)?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:7,"data-qa":`dt-button-block-end-icon`,class:(0,o.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--bottom":n.kind!==`unstyled`},n.blockEndIconClass])},[(0,o.renderSlot)(e.$slots,`blockEndIcon`,{iconSize:a.iconSize})],2)):(0,o.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.trailing)?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:8,class:(0,o.normalizeClass)([`d-btn__trailing`,n.trailingClass])},[(0,o.renderSlot)(e.$slots,`trailing`)],2)):(0,o.createCommentVNode)(``,!0)]),_:3},16,[`class`,`style`,`aria-live`,`aria-label`])}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(`../loader/loader.cjs`),i=require(`./button-constants.cjs`),a=require(`../link/link-constants.cjs`),o=require(`../../localization/index.cjs`);let s=require(`vue`);var c={name:`DtButton`,components:{DtLoader:r.default},props:{circle:{type:Boolean,default:!1},iconPosition:{type:String,default:`start`,validator:e=>Object.keys(i.ICON_POSITION_MODIFIERS).includes(e)},importance:{type:String,default:`primary`,validator:e=>Object.keys(i.BUTTON_IMPORTANCE_MODIFIERS).includes(e)},link:{type:Boolean,default:!1},linkKind:{type:String,default:`default`,validator:e=>Object.keys(a.LINK_KIND_MODIFIERS).includes(e)},linkInverted:{type:Boolean,default:!1},linkUnderline:{type:Boolean,default:!0},underline:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},type:{type:String,default:`button`,validator:e=>i.BUTTON_TYPES.includes(e)},width:{type:String,default:null},size:{type:[String,Number],default:300,validator:e.ordinalSizeValidator(i.BUTTON_SIZE_MODIFIERS)},labelClass:{type:[String,Array,Object],default:``},leadingClass:{type:[String,Array,Object],default:``},trailingClass:{type:[String,Array,Object],default:``},startIconClass:{type:[String,Array,Object],default:``},endIconClass:{type:[String,Array,Object],default:``},blockStartIconClass:{type:[String,Array,Object],default:``},blockEndIconClass:{type:[String,Array,Object],default:``},iconClass:{type:[String,Array,Object],default:``},loading:{type:Boolean,default:!1},kind:{type:String,default:`default`,validator:e=>Object.keys(i.BUTTON_KIND_MODIFIERS).includes(e)},assertiveOnFocus:{type:Boolean,default:!1},active:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},target:{type:String,default:null},rel:{type:String,default:null},replace:{type:Boolean,default:!1}},emits:[`focusin`,`focusout`],data(){return{ICON_POSITION_MODIFIERS:i.ICON_POSITION_MODIFIERS,isInFocus:!1,hasSlotContent:t.hasSlotContent,i18n:new o.DialtoneLocalization}},computed:{resolvedUnderline(){return this.underline??this.linkUnderline},computedTag(){return this.to?this.resolveRouterLink():this.href?`a`:`button`},isNativeButton(){return!this.to&&!this.href},computedAttrs(){return this.to?{to:this.to,replace:this.replace,...this.disabled&&{"aria-disabled":`true`,tabindex:`-1`}}:this.href?{href:this.disabled?null:this.href,target:this.target,rel:this.rel,...this.disabled&&{"aria-disabled":`true`,tabindex:`-1`}}:{type:this.type,disabled:this.disabled}},computedListeners(){let e={focusin:e=>{this.isInFocus=this.assertiveOnFocus,this.$emit(`focusin`,e)},focusout:e=>{this.isInFocus=!1,this.$emit(`focusout`,e)}};return this.isNativeButton||(this.disabled&&(e.click=e=>{e.preventDefault(),e.stopImmediatePropagation()}),e.keydown=e=>{(e.key===` `||e.code===`Space`)&&(e.preventDefault(),this.disabled||e.target.click())}),e},computedAriaLive(){return this.assertiveOnFocus&&this.isInFocus?`assertive`:this.$attrs.ariaLive},iconSize(){return i.BUTTON_ICON_SIZES[String(this.size)]},loaderSize(){return i.BUTTON_ICON_SIZES[String(this.size)]}},watch:{$props:{deep:!0,immediate:!0,handler(){process.env.NODE_ENV!==`production`&&(this.circle&&this.link&&(0,s.warn)(`You cannot enable circle and link at the same time`,this),this.isInvalidPropCombination(this.circle,this.kind,this.importance))}}},methods:{resolveRouterLink(){try{return(0,s.resolveComponent)(`RouterLink`)}catch{return(0,s.warn)(`DtButton: "to" prop requires vue-router. Falling back to <a>.`),`a`}},buttonClasses(){return this.link?[`d-link`,a.getLinkKindModifier(this.linkKind,this.linkInverted),i.BUTTON_SIZE_MODIFIERS[String(this.size)],{"d-link--no-underline":!this.resolvedUnderline}]:this.kind===`unstyled`?[`d-btn--unstyled`]:[`d-btn`,i.BUTTON_IMPORTANCE_MODIFIERS[this.importance],i.BUTTON_KIND_MODIFIERS[this.kind],i.BUTTON_SIZE_MODIFIERS[String(this.size)],{"d-btn--circle":this.circle,"d-btn--loading":this.loading,"d-btn--icon-only":this.isIconOnly(),"d-btn--vertical":this.isVerticalIconLayout(),"d-btn--active":this.active}]},isInvalidPropCombination(e,t,n){if(this.kind===`unstyled`)return!0;for(let r of i.INVALID_COMBINATION)if(e===r.circle&&t===r.kind&&n===r.importance)return(0,s.warn)(r.message),!1;return!0},hasStartIcon(){return t.hasSlotContent(this.$slots.startIcon)},hasEndIcon(){return t.hasSlotContent(this.$slots.endIcon)},hasBlockStartIcon(){return t.hasSlotContent(this.$slots.blockStartIcon)},hasBlockEndIcon(){return t.hasSlotContent(this.$slots.blockEndIcon)},hasNewIconSlots(){return this.hasStartIcon()||this.hasEndIcon()||this.hasBlockStartIcon()||this.hasBlockEndIcon()},shouldRenderLegacyIcon(){return t.hasSlotContent(this.$slots.icon)&&!this.hasNewIconSlots()&&!this.link},isIconOnly(){return(this.hasNewIconSlots()||this.shouldRenderLegacyIcon())&&!t.hasSlotContent(this.$slots.default)},isVerticalIconLayout(){return this.isIconOnly()?!1:this.hasBlockStartIcon()||this.hasBlockEndIcon()?!0:!this.hasNewIconSlots()&&[`top`,`bottom`].includes(this.iconPosition)}}};function l(e,t,n,r,i,a){let o=(0,s.resolveComponent)(`dt-loader`);return(0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(a.computedTag),(0,s.mergeProps)({class:[`base-button__button`,a.buttonClasses()],"data-qa":`dt-button`,style:{width:n.width},"aria-live":a.computedAriaLive,"aria-label":n.loading?i.i18n.$t(`DIALTONE_LOADING`):e.$attrs[`aria-label`]},a.computedAttrs,(0,s.toHandlers)(a.computedListeners)),{default:(0,s.withCtx)(()=>[n.loading&&n.kind!==`unstyled`?((0,s.openBlock)(),(0,s.createBlock)(o,{key:0,class:`d-btn__loader`,size:a.loaderSize,"aria-hidden":`true`},null,8,[`size`])):(0,s.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.leading)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:1,class:(0,s.normalizeClass)([`d-btn__leading`,n.leadingClass])},[(0,s.renderSlot)(e.$slots,`leading`)],2)):(0,s.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.blockStartIcon)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:2,"data-qa":`dt-button-block-start-icon`,class:(0,s.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--top":n.kind!==`unstyled`},n.blockStartIconClass])},[(0,s.renderSlot)(e.$slots,`blockStartIcon`,{iconSize:a.iconSize})],2)):(0,s.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.startIcon)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:3,"data-qa":`dt-button-start-icon`,class:(0,s.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--left":n.kind!==`unstyled`},n.startIconClass])},[(0,s.renderSlot)(e.$slots,`startIcon`,{iconSize:a.iconSize})],2)):(0,s.createCommentVNode)(``,!0),a.shouldRenderLegacyIcon()?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:4,"data-qa":`dt-button-icon`,class:(0,s.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,[i.ICON_POSITION_MODIFIERS[n.iconPosition]]:n.kind!==`unstyled`},n.iconClass])},[(0,s.renderSlot)(e.$slots,`icon`,{iconSize:a.iconSize})],2)):(0,s.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.default)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:5,"data-qa":`dt-button-label`,class:(0,s.normalizeClass)([`base-button__label`,{"d-btn__label":n.kind!==`unstyled`},n.labelClass])},[(0,s.renderSlot)(e.$slots,`default`)],2)):(0,s.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.endIcon)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:6,"data-qa":`dt-button-end-icon`,class:(0,s.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--right":n.kind!==`unstyled`},n.endIconClass])},[(0,s.renderSlot)(e.$slots,`endIcon`,{iconSize:a.iconSize})],2)):(0,s.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.blockEndIcon)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:7,"data-qa":`dt-button-block-end-icon`,class:(0,s.normalizeClass)([`base-button__icon`,{"d-btn__icon":n.kind!==`unstyled`,"d-btn__icon--bottom":n.kind!==`unstyled`},n.blockEndIconClass])},[(0,s.renderSlot)(e.$slots,`blockEndIcon`,{iconSize:a.iconSize})],2)):(0,s.createCommentVNode)(``,!0),i.hasSlotContent(e.$slots.trailing)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:8,class:(0,s.normalizeClass)([`d-btn__trailing`,n.trailingClass])},[(0,s.renderSlot)(e.$slots,`trailing`)],2)):(0,s.createCommentVNode)(``,!0)]),_:3},16,[`class`,`style`,`aria-live`,`aria-label`])}var u=n.t(c,[[`render`,l]]);exports.default=u;
2
2
  //# sourceMappingURL=button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs","names":[],"sources":["../../../components/Button/Button.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n :class=\"[\n 'base-button__button',\n buttonClasses(),\n ]\"\n data-qa=\"dt-button\"\n :style=\"{ width: width }\"\n :aria-live=\"computedAriaLive\"\n :aria-label=\"loading ? i18n.$t('DIALTONE_LOADING') : $attrs['aria-label']\"\n v-bind=\"computedAttrs\"\n v-on=\"computedListeners\"\n >\n <dt-loader\n v-if=\"loading && kind !== 'unstyled'\"\n class=\"d-btn__loader\"\n :size=\"loaderSize\"\n aria-hidden=\"true\"\n />\n <span\n v-if=\"hasSlotContent($slots.leading)\"\n :class=\"['d-btn__leading', leadingClass]\"\n >\n <!-- @slot Optional leading content at the start of the button, such as badges or indicators -->\n <slot name=\"leading\" />\n </span>\n <!-- NEW: Block-start icon slot (above label) -->\n <span\n v-if=\"hasSlotContent($slots.blockStartIcon)\"\n data-qa=\"dt-button-block-start-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--top': kind !== 'unstyled',\n },\n blockStartIconClass,\n ]\"\n >\n <!-- @slot Icon displayed above the button label (block-start) -->\n <slot\n name=\"blockStartIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <!-- NEW: Start icon slot -->\n <span\n v-if=\"hasSlotContent($slots.startIcon)\"\n data-qa=\"dt-button-start-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--left': kind !== 'unstyled',\n },\n startIconClass,\n ]\"\n >\n <!-- @slot Icon displayed at the start (aka left) of the button -->\n <slot\n name=\"startIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <!-- NOTE(cormac): This span is needed since we can't apply styles to slots. -->\n <span\n v-if=\"shouldRenderLegacyIcon()\"\n data-qa=\"dt-button-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n [ICON_POSITION_MODIFIERS[iconPosition]]: kind !== 'unstyled',\n },\n iconClass,\n ]\"\n >\n <!-- @slot Button icon -->\n <slot\n name=\"icon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <span\n v-if=\"hasSlotContent($slots.default)\"\n data-qa=\"dt-button-label\"\n :class=\"[\n 'base-button__label',\n { 'd-btn__label': kind !== 'unstyled' },\n labelClass,\n ]\"\n >\n <!-- @slot Content within button -->\n <slot />\n </span>\n <!-- NEW: End icon slot -->\n <span\n v-if=\"hasSlotContent($slots.endIcon)\"\n data-qa=\"dt-button-end-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--right': kind !== 'unstyled',\n },\n endIconClass,\n ]\"\n >\n <!-- @slot Icon displayed at the end (aka right) of the button -->\n <slot\n name=\"endIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <!-- NEW: Block-end icon slot (below label) -->\n <span\n v-if=\"hasSlotContent($slots.blockEndIcon)\"\n data-qa=\"dt-button-block-end-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--bottom': kind !== 'unstyled',\n },\n blockEndIconClass,\n ]\"\n >\n <!-- @slot Icon displayed below the button label (block-end) -->\n <slot\n name=\"blockEndIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <span\n v-if=\"hasSlotContent($slots.trailing)\"\n :class=\"['d-btn__trailing', trailingClass]\"\n >\n <!-- @slot Optional trailing content at the end of the button, such as badges or indicators -->\n <slot name=\"trailing\" />\n </span>\n </component>\n</template>\n\n<script>\nimport { warn, resolveComponent } from 'vue';\nimport { hasSlotContent } from '@/common/utils';\nimport DtLoader from '@/components/Loader/Loader.vue';\n\nimport {\n BUTTON_SIZE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_ICON_SIZES,\n BUTTON_TYPES,\n ICON_POSITION_MODIFIERS,\n INVALID_COMBINATION,\n} from './ButtonConstants';\n\nimport { LINK_KIND_MODIFIERS, getLinkKindModifier } from '@/components/Link';\nimport { DialtoneLocalization } from '@/localization';\n\n/**\n * A button is a UI element which allows users to take an action throughout the app.\n * It is important a button is identifiable, consistent, and communicates its actions clearly,\n * and is appropriately sized to its action.\n * @see https://dialtone.dialpad.com/components/button.html\n */\nexport default {\n name: 'DtButton',\n\n components: { DtLoader },\n\n props: {\n /**\n * Whether the button is a circle or not. Use only with icon-only buttons.\n * @values true, false\n */\n circle: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The position of the icon slot within the button.\n * @deprecated Use startIcon / endIcon / blockStartIcon / blockEndIcon slots instead.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n iconPosition: {\n type: String,\n default: 'start',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\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 * Whether the button should be styled as a link or not.\n * @values true, false\n * @see DtLink\n */\n link: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The color of the link and button if the button is styled as a link.\n * @values default, critical, warning, positive, muted\n * @see DtLink\n */\n linkKind: {\n type: String,\n default: 'default',\n validator: (lk) => Object.keys(LINK_KIND_MODIFIERS).includes(lk),\n },\n\n /**\n * Determines whether the link should have inverted styling if the button is styled as a link.\n * @values true, false\n * @see DtLink\n * @deprecated Use v-dt-mode instead.\n */\n linkInverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the link-styled button should display an underline.\n * Only applies when the link prop is true.\n * @values true, false\n */\n linkUnderline: {\n type: Boolean,\n default: true,\n },\n\n /**\n * @deprecated Use linkUnderline instead.\n * @values true, false\n */\n underline: {\n type: Boolean,\n default: null,\n },\n\n /**\n * HTML button disabled attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\"> (Reference) </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button type attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type\" target=\"_blank\">(Reference)</a>\n * @values button, submit, reset\n */\n type: {\n type: String,\n default: 'button',\n validator: (t) => BUTTON_TYPES.includes(t),\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\">CSS width attribute</a> values\n */\n width: {\n type: String,\n default: null,\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 * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the leading container\n */\n leadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the trailing container\n */\n trailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start icon container\n */\n startIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the end icon container\n */\n endIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the block-start (aka top) icon container\n */\n blockStartIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the block-end (aka bottom) icon container\n */\n blockEndIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the legacy icon container\n * @deprecated Use startIconClass or endIconClass\n */\n iconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Whether the button should display a loading animation or not.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\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 a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus. default is to not.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * vue-router `to` prop. When provided, renders a `<router-link>`\n * for client-side SPA navigation.\n * @see https://router.vuejs.org/api/interfaces/RouterLinkProps.html#to\n */\n to: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * When provided, renders an `<a>` element for standard browser navigation.\n */\n href: {\n type: String,\n default: null,\n },\n\n /**\n * HTML anchor target attribute. Only applied when using the `href` prop.\n * @values _self, _blank, _parent, _top\n */\n target: {\n type: String,\n default: null,\n },\n\n /**\n * HTML anchor rel attribute. Only applied when using the `href` prop.\n */\n rel: {\n type: String,\n default: null,\n },\n\n /**\n * vue-router `replace` prop. When true, navigation will not leave a\n * history entry. Only applied when using the `to` prop.\n * @values true, false\n */\n replace: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native button focus in event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native button focus out event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n ],\n\n data () {\n return {\n ICON_POSITION_MODIFIERS,\n // whether the button is currently in focus\n isInFocus: false,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n resolvedUnderline () {\n return this.underline ?? this.linkUnderline;\n },\n\n computedTag () {\n if (this.to) return this.resolveRouterLink();\n if (this.href) return 'a';\n return 'button';\n },\n\n isNativeButton () {\n return !this.to && !this.href;\n },\n\n computedAttrs () {\n if (this.to) {\n return {\n to: this.to,\n replace: this.replace,\n ...(this.disabled && { 'aria-disabled': 'true', tabindex: '-1' }),\n };\n }\n if (this.href) {\n return {\n href: this.disabled ? null : this.href,\n target: this.target,\n rel: this.rel,\n ...(this.disabled && { 'aria-disabled': 'true', tabindex: '-1' }),\n };\n }\n return {\n type: this.type,\n disabled: this.disabled,\n };\n },\n\n computedListeners () {\n const listeners = {\n focusin: (e) => {\n this.isInFocus = this.assertiveOnFocus;\n this.$emit('focusin', e);\n },\n\n focusout: (e) => {\n this.isInFocus = false;\n this.$emit('focusout', e);\n },\n };\n\n if (!this.isNativeButton) {\n // Prevent click when disabled for link elements.\n // stopImmediatePropagation prevents parent onClick attrs from firing.\n if (this.disabled) {\n listeners.click = (e) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n }\n\n // Space key handler: <a> only responds to Enter natively,\n // but buttons respond to both Enter and Space.\n listeners.keydown = (e) => {\n if (e.key === ' ' || e.code === 'Space') {\n e.preventDefault();\n if (!this.disabled) {\n e.target.click();\n }\n }\n };\n }\n\n return listeners;\n },\n\n computedAriaLive () {\n return this.assertiveOnFocus && this.isInFocus ? 'assertive' : this.$attrs.ariaLive;\n },\n\n iconSize () {\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n\n loaderSize () {\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n },\n\n watch: {\n $props: {\n deep: true,\n immediate: true,\n handler () {\n if (process.env.NODE_ENV === 'production') return;\n\n if (this.circle && this.link) {\n warn('You cannot enable circle and link at the same time', this);\n }\n\n this.isInvalidPropCombination(this.circle, this.kind, this.importance);\n },\n },\n },\n\n methods: {\n resolveRouterLink () {\n try {\n return resolveComponent('RouterLink');\n } catch {\n warn('DtButton: \"to\" prop requires vue-router. Falling back to <a>.');\n return 'a';\n }\n },\n\n buttonClasses () {\n if (this.link) {\n return [\n 'd-link',\n getLinkKindModifier(this.linkKind, this.linkInverted),\n BUTTON_SIZE_MODIFIERS[String(this.size)],\n { 'd-link--no-underline': !this.resolvedUnderline },\n ];\n }\n if (this.kind === 'unstyled') {\n return ['d-btn--unstyled'];\n }\n return [\n 'd-btn',\n BUTTON_IMPORTANCE_MODIFIERS[this.importance],\n BUTTON_KIND_MODIFIERS[this.kind],\n BUTTON_SIZE_MODIFIERS[String(this.size)],\n {\n 'd-btn--circle': this.circle,\n 'd-btn--loading': this.loading,\n 'd-btn--icon-only': this.isIconOnly(),\n 'd-btn--vertical': this.isVerticalIconLayout(),\n 'd-btn--active': this.active,\n },\n ];\n },\n\n isInvalidPropCombination (circle, kind, importance) {\n // Skip validation if unstyled is true\n if (this.kind === 'unstyled') {\n return true;\n }\n\n for (const row of INVALID_COMBINATION) {\n if (circle === row.circle && kind === row.kind && importance === row.importance) {\n warn(row.message);\n return false;\n }\n }\n return true;\n },\n\n hasStartIcon () {\n return hasSlotContent(this.$slots.startIcon);\n },\n\n hasEndIcon () {\n return hasSlotContent(this.$slots.endIcon);\n },\n\n hasBlockStartIcon () {\n return hasSlotContent(this.$slots.blockStartIcon);\n },\n\n hasBlockEndIcon () {\n return hasSlotContent(this.$slots.blockEndIcon);\n },\n\n hasNewIconSlots () {\n return this.hasStartIcon() || this.hasEndIcon() || this.hasBlockStartIcon() || this.hasBlockEndIcon();\n },\n\n shouldRenderLegacyIcon () {\n return hasSlotContent(this.$slots.icon) && !this.hasNewIconSlots() && !this.link;\n },\n\n isIconOnly () {\n return (this.hasNewIconSlots() || this.shouldRenderLegacyIcon()) && !hasSlotContent(this.$slots.default);\n },\n\n isVerticalIconLayout () {\n if (this.isIconOnly()) return false;\n if (this.hasBlockStartIcon() || this.hasBlockEndIcon()) return true;\n return !this.hasNewIconSlots() && ['top', 'bottom'].includes(this.iconPosition);\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"button.cjs","names":[],"sources":["../../../components/Button/Button.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n :class=\"[\n 'base-button__button',\n buttonClasses(),\n ]\"\n data-qa=\"dt-button\"\n :style=\"{ width: width }\"\n :aria-live=\"computedAriaLive\"\n :aria-label=\"loading ? i18n.$t('DIALTONE_LOADING') : $attrs['aria-label']\"\n v-bind=\"computedAttrs\"\n v-on=\"computedListeners\"\n >\n <dt-loader\n v-if=\"loading && kind !== 'unstyled'\"\n class=\"d-btn__loader\"\n :size=\"loaderSize\"\n aria-hidden=\"true\"\n />\n <span\n v-if=\"hasSlotContent($slots.leading)\"\n :class=\"['d-btn__leading', leadingClass]\"\n >\n <!-- @slot Optional leading content at the start of the button, such as badges or indicators -->\n <slot name=\"leading\" />\n </span>\n <!-- NEW: Block-start icon slot (above label) -->\n <span\n v-if=\"hasSlotContent($slots.blockStartIcon)\"\n data-qa=\"dt-button-block-start-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--top': kind !== 'unstyled',\n },\n blockStartIconClass,\n ]\"\n >\n <!-- @slot Icon displayed above the button label (block-start) -->\n <slot\n name=\"blockStartIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <!-- NEW: Start icon slot -->\n <span\n v-if=\"hasSlotContent($slots.startIcon)\"\n data-qa=\"dt-button-start-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--left': kind !== 'unstyled',\n },\n startIconClass,\n ]\"\n >\n <!-- @slot Icon displayed at the start (aka left) of the button -->\n <slot\n name=\"startIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <!-- NOTE(cormac): This span is needed since we can't apply styles to slots. -->\n <span\n v-if=\"shouldRenderLegacyIcon()\"\n data-qa=\"dt-button-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n [ICON_POSITION_MODIFIERS[iconPosition]]: kind !== 'unstyled',\n },\n iconClass,\n ]\"\n >\n <!-- @slot Button icon -->\n <slot\n name=\"icon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <span\n v-if=\"hasSlotContent($slots.default)\"\n data-qa=\"dt-button-label\"\n :class=\"[\n 'base-button__label',\n { 'd-btn__label': kind !== 'unstyled' },\n labelClass,\n ]\"\n >\n <!-- @slot Content within button -->\n <slot />\n </span>\n <!-- NEW: End icon slot -->\n <span\n v-if=\"hasSlotContent($slots.endIcon)\"\n data-qa=\"dt-button-end-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--right': kind !== 'unstyled',\n },\n endIconClass,\n ]\"\n >\n <!-- @slot Icon displayed at the end (aka right) of the button -->\n <slot\n name=\"endIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <!-- NEW: Block-end icon slot (below label) -->\n <span\n v-if=\"hasSlotContent($slots.blockEndIcon)\"\n data-qa=\"dt-button-block-end-icon\"\n :class=\"[\n 'base-button__icon',\n {\n 'd-btn__icon': kind !== 'unstyled',\n 'd-btn__icon--bottom': kind !== 'unstyled',\n },\n blockEndIconClass,\n ]\"\n >\n <!-- @slot Icon displayed below the button label (block-end) -->\n <slot\n name=\"blockEndIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <span\n v-if=\"hasSlotContent($slots.trailing)\"\n :class=\"['d-btn__trailing', trailingClass]\"\n >\n <!-- @slot Optional trailing content at the end of the button, such as badges or indicators -->\n <slot name=\"trailing\" />\n </span>\n </component>\n</template>\n\n<script>\nimport { warn, resolveComponent } from 'vue';\nimport { hasSlotContent } from '@/common/utils';\nimport { ordinalSizeValidator } from '@/common/validators';\nimport DtLoader from '@/components/Loader/Loader.vue';\n\nimport {\n BUTTON_SIZE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_ICON_SIZES,\n BUTTON_TYPES,\n ICON_POSITION_MODIFIERS,\n INVALID_COMBINATION,\n} from './ButtonConstants';\n\nimport { LINK_KIND_MODIFIERS, getLinkKindModifier } from '@/components/Link';\nimport { DialtoneLocalization } from '@/localization';\n\n/**\n * A button is a UI element which allows users to take an action throughout the app.\n * It is important a button is identifiable, consistent, and communicates its actions clearly,\n * and is appropriately sized to its action.\n * @see https://dialtone.dialpad.com/components/button.html\n */\nexport default {\n name: 'DtButton',\n\n components: { DtLoader },\n\n props: {\n /**\n * Whether the button is a circle or not. Use only with icon-only buttons.\n * @values true, false\n */\n circle: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The position of the icon slot within the button.\n * @deprecated Use startIcon / endIcon / blockStartIcon / blockEndIcon slots instead.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n iconPosition: {\n type: String,\n default: 'start',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\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 * Whether the button should be styled as a link or not.\n * @values true, false\n * @see DtLink\n */\n link: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The color of the link and button if the button is styled as a link.\n * @values default, critical, warning, positive, muted\n * @see DtLink\n */\n linkKind: {\n type: String,\n default: 'default',\n validator: (lk) => Object.keys(LINK_KIND_MODIFIERS).includes(lk),\n },\n\n /**\n * Determines whether the link should have inverted styling if the button is styled as a link.\n * @values true, false\n * @see DtLink\n * @deprecated Use v-dt-mode instead.\n */\n linkInverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the link-styled button should display an underline.\n * Only applies when the link prop is true.\n * @values true, false\n */\n linkUnderline: {\n type: Boolean,\n default: true,\n },\n\n /**\n * @deprecated Use linkUnderline instead.\n * @values true, false\n */\n underline: {\n type: Boolean,\n default: null,\n },\n\n /**\n * HTML button disabled attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\"> (Reference) </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button type attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type\" target=\"_blank\">(Reference)</a>\n * @values button, submit, reset\n */\n type: {\n type: String,\n default: 'button',\n validator: (t) => BUTTON_TYPES.includes(t),\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\">CSS width attribute</a> values\n */\n width: {\n type: String,\n default: null,\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 * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the leading container\n */\n leadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the trailing container\n */\n trailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start icon container\n */\n startIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the end icon container\n */\n endIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the block-start (aka top) icon container\n */\n blockStartIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the block-end (aka bottom) icon container\n */\n blockEndIconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the legacy icon container\n * @deprecated Use startIconClass or endIconClass\n */\n iconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Whether the button should display a loading animation or not.\n * @values true, false\n */\n loading: {\n type: Boolean,\n default: false,\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 a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus. default is to not.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines whether the button should have active styling\n * default is false.\n * @values true, false\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * vue-router `to` prop. When provided, renders a `<router-link>`\n * for client-side SPA navigation.\n * @see https://router.vuejs.org/api/interfaces/RouterLinkProps.html#to\n */\n to: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * When provided, renders an `<a>` element for standard browser navigation.\n */\n href: {\n type: String,\n default: null,\n },\n\n /**\n * HTML anchor target attribute. Only applied when using the `href` prop.\n * @values _self, _blank, _parent, _top\n */\n target: {\n type: String,\n default: null,\n },\n\n /**\n * HTML anchor rel attribute. Only applied when using the `href` prop.\n */\n rel: {\n type: String,\n default: null,\n },\n\n /**\n * vue-router `replace` prop. When true, navigation will not leave a\n * history entry. Only applied when using the `to` prop.\n * @values true, false\n */\n replace: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native button focus in event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native button focus out event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n ],\n\n data () {\n return {\n ICON_POSITION_MODIFIERS,\n // whether the button is currently in focus\n isInFocus: false,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n resolvedUnderline () {\n return this.underline ?? this.linkUnderline;\n },\n\n computedTag () {\n if (this.to) return this.resolveRouterLink();\n if (this.href) return 'a';\n return 'button';\n },\n\n isNativeButton () {\n return !this.to && !this.href;\n },\n\n computedAttrs () {\n if (this.to) {\n return {\n to: this.to,\n replace: this.replace,\n ...(this.disabled && { 'aria-disabled': 'true', tabindex: '-1' }),\n };\n }\n if (this.href) {\n return {\n href: this.disabled ? null : this.href,\n target: this.target,\n rel: this.rel,\n ...(this.disabled && { 'aria-disabled': 'true', tabindex: '-1' }),\n };\n }\n return {\n type: this.type,\n disabled: this.disabled,\n };\n },\n\n computedListeners () {\n const listeners = {\n focusin: (e) => {\n this.isInFocus = this.assertiveOnFocus;\n this.$emit('focusin', e);\n },\n\n focusout: (e) => {\n this.isInFocus = false;\n this.$emit('focusout', e);\n },\n };\n\n if (!this.isNativeButton) {\n // Prevent click when disabled for link elements.\n // stopImmediatePropagation prevents parent onClick attrs from firing.\n if (this.disabled) {\n listeners.click = (e) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n }\n\n // Space key handler: <a> only responds to Enter natively,\n // but buttons respond to both Enter and Space.\n listeners.keydown = (e) => {\n if (e.key === ' ' || e.code === 'Space') {\n e.preventDefault();\n if (!this.disabled) {\n e.target.click();\n }\n }\n };\n }\n\n return listeners;\n },\n\n computedAriaLive () {\n return this.assertiveOnFocus && this.isInFocus ? 'assertive' : this.$attrs.ariaLive;\n },\n\n iconSize () {\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n\n loaderSize () {\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n },\n\n watch: {\n $props: {\n deep: true,\n immediate: true,\n handler () {\n if (process.env.NODE_ENV === 'production') return;\n\n if (this.circle && this.link) {\n warn('You cannot enable circle and link at the same time', this);\n }\n\n this.isInvalidPropCombination(this.circle, this.kind, this.importance);\n },\n },\n },\n\n methods: {\n resolveRouterLink () {\n try {\n return resolveComponent('RouterLink');\n } catch {\n warn('DtButton: \"to\" prop requires vue-router. Falling back to <a>.');\n return 'a';\n }\n },\n\n buttonClasses () {\n if (this.link) {\n return [\n 'd-link',\n getLinkKindModifier(this.linkKind, this.linkInverted),\n BUTTON_SIZE_MODIFIERS[String(this.size)],\n { 'd-link--no-underline': !this.resolvedUnderline },\n ];\n }\n if (this.kind === 'unstyled') {\n return ['d-btn--unstyled'];\n }\n return [\n 'd-btn',\n BUTTON_IMPORTANCE_MODIFIERS[this.importance],\n BUTTON_KIND_MODIFIERS[this.kind],\n BUTTON_SIZE_MODIFIERS[String(this.size)],\n {\n 'd-btn--circle': this.circle,\n 'd-btn--loading': this.loading,\n 'd-btn--icon-only': this.isIconOnly(),\n 'd-btn--vertical': this.isVerticalIconLayout(),\n 'd-btn--active': this.active,\n },\n ];\n },\n\n isInvalidPropCombination (circle, kind, importance) {\n // Skip validation if unstyled is true\n if (this.kind === 'unstyled') {\n return true;\n }\n\n for (const row of INVALID_COMBINATION) {\n if (circle === row.circle && kind === row.kind && importance === row.importance) {\n warn(row.message);\n return false;\n }\n }\n return true;\n },\n\n hasStartIcon () {\n return hasSlotContent(this.$slots.startIcon);\n },\n\n hasEndIcon () {\n return hasSlotContent(this.$slots.endIcon);\n },\n\n hasBlockStartIcon () {\n return hasSlotContent(this.$slots.blockStartIcon);\n },\n\n hasBlockEndIcon () {\n return hasSlotContent(this.$slots.blockEndIcon);\n },\n\n hasNewIconSlots () {\n return this.hasStartIcon() || this.hasEndIcon() || this.hasBlockStartIcon() || this.hasBlockEndIcon();\n },\n\n shouldRenderLegacyIcon () {\n return hasSlotContent(this.$slots.icon) && !this.hasNewIconSlots() && !this.link;\n },\n\n isIconOnly () {\n return (this.hasNewIconSlots() || this.shouldRenderLegacyIcon()) && !hasSlotContent(this.$slots.default);\n },\n\n isVerticalIconLayout () {\n if (this.isIconOnly()) return false;\n if (this.hasBlockStartIcon() || this.hasBlockEndIcon()) return true;\n return !this.hasNewIconSlots() && ['top', 'bottom'].includes(this.iconPosition);\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import { hasSlotContent as e } from "../../common/utils/index.js";
2
- import { t } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
3
- import n from "../loader/loader.js";
4
- import { BUTTON_ICON_SIZES as r, BUTTON_IMPORTANCE_MODIFIERS as i, BUTTON_KIND_MODIFIERS as a, BUTTON_SIZE_MODIFIERS as o, BUTTON_TYPES as s, ICON_POSITION_MODIFIERS as c, INVALID_COMBINATION as l } from "./button-constants.js";
5
- import { LINK_KIND_MODIFIERS as u, getLinkKindModifier as d } from "../link/link-constants.js";
6
- import { DialtoneLocalization as f } from "../../localization/index.js";
7
- import { createBlock as p, createCommentVNode as m, createElementBlock as h, mergeProps as g, normalizeClass as _, openBlock as v, renderSlot as y, resolveComponent as b, resolveDynamicComponent as x, toHandlers as S, warn as C, withCtx as w } from "vue";
1
+ import { ordinalSizeValidator as e } from "../../common/validators/index.js";
2
+ import { hasSlotContent as t } from "../../common/utils/index.js";
3
+ import { t as n } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
4
+ import r from "../loader/loader.js";
5
+ import { BUTTON_ICON_SIZES as i, BUTTON_IMPORTANCE_MODIFIERS as a, BUTTON_KIND_MODIFIERS as o, BUTTON_SIZE_MODIFIERS as s, BUTTON_TYPES as c, ICON_POSITION_MODIFIERS as l, INVALID_COMBINATION as u } from "./button-constants.js";
6
+ import { LINK_KIND_MODIFIERS as d, getLinkKindModifier as f } from "../link/link-constants.js";
7
+ import { DialtoneLocalization as p } from "../../localization/index.js";
8
+ import { createBlock as m, createCommentVNode as h, createElementBlock as g, mergeProps as _, normalizeClass as v, openBlock as y, renderSlot as b, resolveComponent as x, resolveDynamicComponent as S, toHandlers as C, warn as w, withCtx as T } from "vue";
8
9
  //#region components/Button/Button.vue
9
- var T = {
10
+ var E = {
10
11
  name: "DtButton",
11
- components: { DtLoader: n },
12
+ components: { DtLoader: r },
12
13
  props: {
13
14
  circle: {
14
15
  type: Boolean,
@@ -17,12 +18,12 @@ var T = {
17
18
  iconPosition: {
18
19
  type: String,
19
20
  default: "start",
20
- validator: (e) => Object.keys(c).includes(e)
21
+ validator: (e) => Object.keys(l).includes(e)
21
22
  },
22
23
  importance: {
23
24
  type: String,
24
25
  default: "primary",
25
- validator: (e) => Object.keys(i).includes(e)
26
+ validator: (e) => Object.keys(a).includes(e)
26
27
  },
27
28
  link: {
28
29
  type: Boolean,
@@ -31,7 +32,7 @@ var T = {
31
32
  linkKind: {
32
33
  type: String,
33
34
  default: "default",
34
- validator: (e) => Object.keys(u).includes(e)
35
+ validator: (e) => Object.keys(d).includes(e)
35
36
  },
36
37
  linkInverted: {
37
38
  type: Boolean,
@@ -52,7 +53,7 @@ var T = {
52
53
  type: {
53
54
  type: String,
54
55
  default: "button",
55
- validator: (e) => s.includes(e)
56
+ validator: (e) => c.includes(e)
56
57
  },
57
58
  width: {
58
59
  type: String,
@@ -61,7 +62,7 @@ var T = {
61
62
  size: {
62
63
  type: [String, Number],
63
64
  default: 300,
64
- validator: (e) => Object.keys(o).includes(String(e))
65
+ validator: e(s)
65
66
  },
66
67
  labelClass: {
67
68
  type: [
@@ -134,7 +135,7 @@ var T = {
134
135
  kind: {
135
136
  type: String,
136
137
  default: "default",
137
- validator: (e) => Object.keys(a).includes(e)
138
+ validator: (e) => Object.keys(o).includes(e)
138
139
  },
139
140
  assertiveOnFocus: {
140
141
  type: Boolean,
@@ -168,10 +169,10 @@ var T = {
168
169
  emits: ["focusin", "focusout"],
169
170
  data() {
170
171
  return {
171
- ICON_POSITION_MODIFIERS: c,
172
+ ICON_POSITION_MODIFIERS: l,
172
173
  isInFocus: !1,
173
- hasSlotContent: e,
174
- i18n: new f()
174
+ hasSlotContent: t,
175
+ i18n: new p()
175
176
  };
176
177
  },
177
178
  computed: {
@@ -224,38 +225,38 @@ var T = {
224
225
  return this.assertiveOnFocus && this.isInFocus ? "assertive" : this.$attrs.ariaLive;
225
226
  },
226
227
  iconSize() {
227
- return r[String(this.size)];
228
+ return i[String(this.size)];
228
229
  },
229
230
  loaderSize() {
230
- return r[String(this.size)];
231
+ return i[String(this.size)];
231
232
  }
232
233
  },
233
234
  watch: { $props: {
234
235
  deep: !0,
235
236
  immediate: !0,
236
237
  handler() {
237
- process.env.NODE_ENV !== "production" && (this.circle && this.link && C("You cannot enable circle and link at the same time", this), this.isInvalidPropCombination(this.circle, this.kind, this.importance));
238
+ process.env.NODE_ENV !== "production" && (this.circle && this.link && w("You cannot enable circle and link at the same time", this), this.isInvalidPropCombination(this.circle, this.kind, this.importance));
238
239
  }
239
240
  } },
240
241
  methods: {
241
242
  resolveRouterLink() {
242
243
  try {
243
- return b("RouterLink");
244
+ return x("RouterLink");
244
245
  } catch {
245
- return C("DtButton: \"to\" prop requires vue-router. Falling back to <a>."), "a";
246
+ return w("DtButton: \"to\" prop requires vue-router. Falling back to <a>."), "a";
246
247
  }
247
248
  },
248
249
  buttonClasses() {
249
250
  return this.link ? [
250
251
  "d-link",
251
- d(this.linkKind, this.linkInverted),
252
- o[String(this.size)],
252
+ f(this.linkKind, this.linkInverted),
253
+ s[String(this.size)],
253
254
  { "d-link--no-underline": !this.resolvedUnderline }
254
255
  ] : this.kind === "unstyled" ? ["d-btn--unstyled"] : [
255
256
  "d-btn",
256
- i[this.importance],
257
- a[this.kind],
258
- o[String(this.size)],
257
+ a[this.importance],
258
+ o[this.kind],
259
+ s[String(this.size)],
259
260
  {
260
261
  "d-btn--circle": this.circle,
261
262
  "d-btn--loading": this.loading,
@@ -267,59 +268,59 @@ var T = {
267
268
  },
268
269
  isInvalidPropCombination(e, t, n) {
269
270
  if (this.kind === "unstyled") return !0;
270
- for (let r of l) if (e === r.circle && t === r.kind && n === r.importance) return C(r.message), !1;
271
+ for (let r of u) if (e === r.circle && t === r.kind && n === r.importance) return w(r.message), !1;
271
272
  return !0;
272
273
  },
273
274
  hasStartIcon() {
274
- return e(this.$slots.startIcon);
275
+ return t(this.$slots.startIcon);
275
276
  },
276
277
  hasEndIcon() {
277
- return e(this.$slots.endIcon);
278
+ return t(this.$slots.endIcon);
278
279
  },
279
280
  hasBlockStartIcon() {
280
- return e(this.$slots.blockStartIcon);
281
+ return t(this.$slots.blockStartIcon);
281
282
  },
282
283
  hasBlockEndIcon() {
283
- return e(this.$slots.blockEndIcon);
284
+ return t(this.$slots.blockEndIcon);
284
285
  },
285
286
  hasNewIconSlots() {
286
287
  return this.hasStartIcon() || this.hasEndIcon() || this.hasBlockStartIcon() || this.hasBlockEndIcon();
287
288
  },
288
289
  shouldRenderLegacyIcon() {
289
- return e(this.$slots.icon) && !this.hasNewIconSlots() && !this.link;
290
+ return t(this.$slots.icon) && !this.hasNewIconSlots() && !this.link;
290
291
  },
291
292
  isIconOnly() {
292
- return (this.hasNewIconSlots() || this.shouldRenderLegacyIcon()) && !e(this.$slots.default);
293
+ return (this.hasNewIconSlots() || this.shouldRenderLegacyIcon()) && !t(this.$slots.default);
293
294
  },
294
295
  isVerticalIconLayout() {
295
296
  return this.isIconOnly() ? !1 : this.hasBlockStartIcon() || this.hasBlockEndIcon() ? !0 : !this.hasNewIconSlots() && ["top", "bottom"].includes(this.iconPosition);
296
297
  }
297
298
  }
298
299
  };
299
- function E(e, t, n, r, i, a) {
300
- let o = b("dt-loader");
301
- return v(), p(x(a.computedTag), g({
300
+ function D(e, t, n, r, i, a) {
301
+ let o = x("dt-loader");
302
+ return y(), m(S(a.computedTag), _({
302
303
  class: ["base-button__button", a.buttonClasses()],
303
304
  "data-qa": "dt-button",
304
305
  style: { width: n.width },
305
306
  "aria-live": a.computedAriaLive,
306
307
  "aria-label": n.loading ? i.i18n.$t("DIALTONE_LOADING") : e.$attrs["aria-label"]
307
- }, a.computedAttrs, S(a.computedListeners)), {
308
- default: w(() => [
309
- n.loading && n.kind !== "unstyled" ? (v(), p(o, {
308
+ }, a.computedAttrs, C(a.computedListeners)), {
309
+ default: T(() => [
310
+ n.loading && n.kind !== "unstyled" ? (y(), m(o, {
310
311
  key: 0,
311
312
  class: "d-btn__loader",
312
313
  size: a.loaderSize,
313
314
  "aria-hidden": "true"
314
- }, null, 8, ["size"])) : m("", !0),
315
- i.hasSlotContent(e.$slots.leading) ? (v(), h("span", {
315
+ }, null, 8, ["size"])) : h("", !0),
316
+ i.hasSlotContent(e.$slots.leading) ? (y(), g("span", {
316
317
  key: 1,
317
- class: _(["d-btn__leading", n.leadingClass])
318
- }, [y(e.$slots, "leading")], 2)) : m("", !0),
319
- i.hasSlotContent(e.$slots.blockStartIcon) ? (v(), h("span", {
318
+ class: v(["d-btn__leading", n.leadingClass])
319
+ }, [b(e.$slots, "leading")], 2)) : h("", !0),
320
+ i.hasSlotContent(e.$slots.blockStartIcon) ? (y(), g("span", {
320
321
  key: 2,
321
322
  "data-qa": "dt-button-block-start-icon",
322
- class: _([
323
+ class: v([
323
324
  "base-button__icon",
324
325
  {
325
326
  "d-btn__icon": n.kind !== "unstyled",
@@ -327,11 +328,11 @@ function E(e, t, n, r, i, a) {
327
328
  },
328
329
  n.blockStartIconClass
329
330
  ])
330
- }, [y(e.$slots, "blockStartIcon", { iconSize: a.iconSize })], 2)) : m("", !0),
331
- i.hasSlotContent(e.$slots.startIcon) ? (v(), h("span", {
331
+ }, [b(e.$slots, "blockStartIcon", { iconSize: a.iconSize })], 2)) : h("", !0),
332
+ i.hasSlotContent(e.$slots.startIcon) ? (y(), g("span", {
332
333
  key: 3,
333
334
  "data-qa": "dt-button-start-icon",
334
- class: _([
335
+ class: v([
335
336
  "base-button__icon",
336
337
  {
337
338
  "d-btn__icon": n.kind !== "unstyled",
@@ -339,11 +340,11 @@ function E(e, t, n, r, i, a) {
339
340
  },
340
341
  n.startIconClass
341
342
  ])
342
- }, [y(e.$slots, "startIcon", { iconSize: a.iconSize })], 2)) : m("", !0),
343
- a.shouldRenderLegacyIcon() ? (v(), h("span", {
343
+ }, [b(e.$slots, "startIcon", { iconSize: a.iconSize })], 2)) : h("", !0),
344
+ a.shouldRenderLegacyIcon() ? (y(), g("span", {
344
345
  key: 4,
345
346
  "data-qa": "dt-button-icon",
346
- class: _([
347
+ class: v([
347
348
  "base-button__icon",
348
349
  {
349
350
  "d-btn__icon": n.kind !== "unstyled",
@@ -351,20 +352,20 @@ function E(e, t, n, r, i, a) {
351
352
  },
352
353
  n.iconClass
353
354
  ])
354
- }, [y(e.$slots, "icon", { iconSize: a.iconSize })], 2)) : m("", !0),
355
- i.hasSlotContent(e.$slots.default) ? (v(), h("span", {
355
+ }, [b(e.$slots, "icon", { iconSize: a.iconSize })], 2)) : h("", !0),
356
+ i.hasSlotContent(e.$slots.default) ? (y(), g("span", {
356
357
  key: 5,
357
358
  "data-qa": "dt-button-label",
358
- class: _([
359
+ class: v([
359
360
  "base-button__label",
360
361
  { "d-btn__label": n.kind !== "unstyled" },
361
362
  n.labelClass
362
363
  ])
363
- }, [y(e.$slots, "default")], 2)) : m("", !0),
364
- i.hasSlotContent(e.$slots.endIcon) ? (v(), h("span", {
364
+ }, [b(e.$slots, "default")], 2)) : h("", !0),
365
+ i.hasSlotContent(e.$slots.endIcon) ? (y(), g("span", {
365
366
  key: 6,
366
367
  "data-qa": "dt-button-end-icon",
367
- class: _([
368
+ class: v([
368
369
  "base-button__icon",
369
370
  {
370
371
  "d-btn__icon": n.kind !== "unstyled",
@@ -372,11 +373,11 @@ function E(e, t, n, r, i, a) {
372
373
  },
373
374
  n.endIconClass
374
375
  ])
375
- }, [y(e.$slots, "endIcon", { iconSize: a.iconSize })], 2)) : m("", !0),
376
- i.hasSlotContent(e.$slots.blockEndIcon) ? (v(), h("span", {
376
+ }, [b(e.$slots, "endIcon", { iconSize: a.iconSize })], 2)) : h("", !0),
377
+ i.hasSlotContent(e.$slots.blockEndIcon) ? (y(), g("span", {
377
378
  key: 7,
378
379
  "data-qa": "dt-button-block-end-icon",
379
- class: _([
380
+ class: v([
380
381
  "base-button__icon",
381
382
  {
382
383
  "d-btn__icon": n.kind !== "unstyled",
@@ -384,11 +385,11 @@ function E(e, t, n, r, i, a) {
384
385
  },
385
386
  n.blockEndIconClass
386
387
  ])
387
- }, [y(e.$slots, "blockEndIcon", { iconSize: a.iconSize })], 2)) : m("", !0),
388
- i.hasSlotContent(e.$slots.trailing) ? (v(), h("span", {
388
+ }, [b(e.$slots, "blockEndIcon", { iconSize: a.iconSize })], 2)) : h("", !0),
389
+ i.hasSlotContent(e.$slots.trailing) ? (y(), g("span", {
389
390
  key: 8,
390
- class: _(["d-btn__trailing", n.trailingClass])
391
- }, [y(e.$slots, "trailing")], 2)) : m("", !0)
391
+ class: v(["d-btn__trailing", n.trailingClass])
392
+ }, [b(e.$slots, "trailing")], 2)) : h("", !0)
392
393
  ]),
393
394
  _: 3
394
395
  }, 16, [
@@ -398,8 +399,8 @@ function E(e, t, n, r, i, a) {
398
399
  "aria-label"
399
400
  ]);
400
401
  }
401
- var D = /* @__PURE__ */ t(T, [["render", E]]);
402
+ var O = /* @__PURE__ */ n(E, [["render", D]]);
402
403
  //#endregion
403
- export { D as default };
404
+ export { O as default };
404
405
 
405
406
  //# sourceMappingURL=button.js.map