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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/dist/Combobox-CYEmi3dv.cjs +3 -0
  2. package/dist/Combobox-CYEmi3dv.cjs.map +1 -0
  3. package/dist/{Combobox-By01ETlj.js → Combobox-D8nQeBIf.js} +33 -32
  4. package/dist/Combobox-D8nQeBIf.js.map +1 -0
  5. package/dist/MarkdownRenderer-D5XWsyQk.cjs.map +1 -1
  6. package/dist/{MarkdownRenderer-C3MZDB2I.js → MarkdownRenderer-NSSny0ID.js} +2 -2
  7. package/dist/{MarkdownRenderer-C3MZDB2I.js.map → MarkdownRenderer-NSSny0ID.js.map} +1 -1
  8. package/dist/{RichTextEditor-BX-5tCOx.cjs → RichTextEditor-B9NGgB03.cjs} +2 -2
  9. package/dist/{RichTextEditor-BX-5tCOx.cjs.map → RichTextEditor-B9NGgB03.cjs.map} +1 -1
  10. package/dist/{RichTextEditor-D8Kas5A3.js → RichTextEditor-DxbZSRop.js} +4 -4
  11. package/dist/{RichTextEditor-D8Kas5A3.js.map → RichTextEditor-DxbZSRop.js.map} +1 -1
  12. package/dist/TextList-B6XFfQfD.js +88 -0
  13. package/dist/TextList-B6XFfQfD.js.map +1 -0
  14. package/dist/TextList-Dd-ROFiI.cjs +2 -0
  15. package/dist/TextList-Dd-ROFiI.cjs.map +1 -0
  16. package/dist/TextListItem-DIlrCkaM.cjs +2 -0
  17. package/dist/TextListItem-DIlrCkaM.cjs.map +1 -0
  18. package/dist/TextListItem-ImUi_FWh.js +62 -0
  19. package/dist/TextListItem-ImUi_FWh.js.map +1 -0
  20. package/dist/{Toast-CHbVmbBg.js → Toast-BIHkIpZP.js} +95 -94
  21. package/dist/Toast-BIHkIpZP.js.map +1 -0
  22. package/dist/Toast-D8ARDEgT.cjs +2 -0
  23. package/dist/Toast-D8ARDEgT.cjs.map +1 -0
  24. package/dist/{attachment_carousel-BFIAXWOZ.js → attachment_carousel-CyiexPBk.js} +1 -1
  25. package/dist/{attachment_carousel-BFIAXWOZ.js.map → attachment_carousel-CyiexPBk.js.map} +1 -1
  26. package/dist/{attachment_carousel-BJxqNJ5T.cjs → attachment_carousel-DJqILY7f.cjs} +1 -1
  27. package/dist/{attachment_carousel-BJxqNJ5T.cjs.map → attachment_carousel-DJqILY7f.cjs.map} +1 -1
  28. package/dist/common/mixins/input.d.ts +4 -4
  29. package/dist/common/mixins/input_group.d.ts +2 -2
  30. package/dist/common/sr_only_close_button.vue.d.ts +30 -30
  31. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  32. package/dist/common/validators/index.cjs +1 -1
  33. package/dist/common/validators/index.cjs.map +1 -1
  34. package/dist/common/validators/index.d.ts +2 -0
  35. package/dist/common/validators/index.d.ts.map +1 -1
  36. package/dist/common/validators/index.js +9 -2
  37. package/dist/common/validators/index.js.map +1 -1
  38. package/dist/component-documentation.json +1 -1
  39. package/dist/components/Avatar/Avatar.vue.d.ts +10 -10
  40. package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
  41. package/dist/components/Badge/Badge.vue.d.ts +13 -13
  42. package/dist/components/Banner/Banner.vue.d.ts +142 -107
  43. package/dist/components/Banner/Banner.vue.d.ts.map +1 -1
  44. package/dist/components/Box/Box.vue.d.ts +18 -0
  45. package/dist/components/Box/Box.vue.d.ts.map +1 -1
  46. package/dist/components/Box/BoxConstants.d.ts +4 -0
  47. package/dist/components/Box/BoxConstants.d.ts.map +1 -1
  48. package/dist/components/Box/Validators.d.ts +4 -0
  49. package/dist/components/Box/Validators.d.ts.map +1 -1
  50. package/dist/components/Box/index.d.ts +1 -1
  51. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts +1 -0
  52. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts.map +1 -1
  53. package/dist/components/Breadcrumbs/Breadcrumbs.vue.d.ts +3 -2
  54. package/dist/components/Button/Button.vue.d.ts +25 -25
  55. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  56. package/dist/components/Card/Card.vue.d.ts +6 -6
  57. package/dist/components/Checkbox/Checkbox.vue.d.ts +62 -27
  58. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  59. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +82 -47
  60. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -1
  61. package/dist/components/Chip/Chip.vue.d.ts +40 -40
  62. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  63. package/dist/components/Codeblock/Codeblock.vue.d.ts +2 -2
  64. package/dist/components/Collapsible/Collapsible.vue.d.ts +39 -39
  65. package/dist/components/Collapsible/Collapsible.vue.d.ts.map +1 -1
  66. package/dist/components/Combobox/Combobox.vue.d.ts +66 -66
  67. package/dist/components/Combobox/Combobox.vue.d.ts.map +1 -1
  68. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts +29 -29
  69. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts.map +1 -1
  70. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts +35 -35
  71. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts.map +1 -1
  72. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts +216 -216
  73. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts.map +1 -1
  74. package/dist/components/DescriptionList/DescriptionList.vue.d.ts +4 -4
  75. package/dist/components/Dropdown/Dropdown.vue.d.ts +82 -82
  76. package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  77. package/dist/components/Emoji/Emoji.vue.d.ts +17 -17
  78. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts +73 -38
  79. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts.map +1 -1
  80. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts +73 -38
  81. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts.map +1 -1
  82. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts +24 -24
  83. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts.map +1 -1
  84. package/dist/components/EmptyState/EmptyState.vue.d.ts.map +1 -1
  85. package/dist/components/FilterPill/FilterPill.vue.d.ts +380 -310
  86. package/dist/components/FilterPill/FilterPill.vue.d.ts.map +1 -1
  87. package/dist/components/Hovercard/Hovercard.vue.d.ts +156 -156
  88. package/dist/components/Hovercard/Hovercard.vue.d.ts.map +1 -1
  89. package/dist/components/Icon/Icon.vue.d.ts +7 -7
  90. package/dist/components/ImageViewer/ImageViewer.vue.d.ts +60 -60
  91. package/dist/components/ImageViewer/ImageViewer.vue.d.ts.map +1 -1
  92. package/dist/components/Input/Input.vue.d.ts +73 -38
  93. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  94. package/dist/components/InputGroup/InputGroup.vue.d.ts +82 -47
  95. package/dist/components/InputGroup/InputGroup.vue.d.ts.map +1 -1
  96. package/dist/components/ItemLayout/ItemLayout.vue.d.ts +20 -20
  97. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts +116 -81
  98. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts.map +1 -1
  99. package/dist/components/Link/Link.vue.d.ts +1 -0
  100. package/dist/components/Link/LinkConstants.d.ts +3 -0
  101. package/dist/components/Link/LinkConstants.d.ts.map +1 -1
  102. package/dist/components/ListItem/ListItem.vue.d.ts +27 -27
  103. package/dist/components/ListItem/ListItem.vue.d.ts.map +1 -1
  104. package/dist/components/ListItemGroup/ListItemGroup.vue.d.ts +4 -4
  105. package/dist/components/Loader/Loader.vue.d.ts +7 -7
  106. package/dist/components/Modal/Modal.vue.d.ts +115 -86
  107. package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
  108. package/dist/components/Modal/ModalConstants.d.ts +0 -5
  109. package/dist/components/Modal/index.d.ts +1 -1
  110. package/dist/components/Notice/Notice.vue.d.ts +142 -107
  111. package/dist/components/Notice/Notice.vue.d.ts.map +1 -1
  112. package/dist/components/Notice/NoticeAction.vue.d.ts +62 -62
  113. package/dist/components/Notice/NoticeAction.vue.d.ts.map +1 -1
  114. package/dist/components/Notice/NoticeContent.vue.d.ts +40 -5
  115. package/dist/components/Notice/NoticeContent.vue.d.ts.map +1 -1
  116. package/dist/components/Notice/NoticeIcon.vue.d.ts +32 -32
  117. package/dist/components/Notice/NoticeIcon.vue.d.ts.map +1 -1
  118. package/dist/components/Pagination/Pagination.vue.d.ts +40 -40
  119. package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
  120. package/dist/components/Popover/Popover.vue.d.ts +78 -78
  121. package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
  122. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts +34 -34
  123. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts.map +1 -1
  124. package/dist/components/ProgressCircle/ProgressCircle.vue.d.ts +7 -7
  125. package/dist/components/Prose/Prose.vue.d.ts.map +1 -1
  126. package/dist/components/Radio/Radio.vue.d.ts +62 -27
  127. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  128. package/dist/components/RadioGroup/RadioGroup.vue.d.ts +82 -47
  129. package/dist/components/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
  130. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts +6 -5
  131. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts.map +1 -1
  132. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts +10 -10
  133. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts.map +1 -1
  134. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiComponent.vue.d.ts +17 -17
  135. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiSuggestion.vue.d.ts +17 -17
  136. package/dist/components/RichTextEditor/Extensions/Mentions/MentionComponent.vue.d.ts +1 -0
  137. package/dist/components/RichTextEditor/Extensions/Mentions/MentionSuggestion.vue.d.ts +46 -11
  138. package/dist/components/RichTextEditor/Extensions/SlashCommand/SlashCommandSuggestion.vue.d.ts +36 -1
  139. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts +27 -27
  140. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts.map +1 -1
  141. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts +189 -154
  142. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts.map +1 -1
  143. package/dist/components/RootLayout/RootLayout.vue.d.ts +10 -10
  144. package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
  145. package/dist/components/SelectMenu/SelectMenu.vue.d.ts +69 -34
  146. package/dist/components/SelectMenu/SelectMenu.vue.d.ts.map +1 -1
  147. package/dist/components/Skeleton/Skeleton.vue.d.ts +8 -8
  148. package/dist/components/Skeleton/SkeletonListItem.vue.d.ts +4 -4
  149. package/dist/components/Skeleton/SkeletonParagraph.vue.d.ts +2 -2
  150. package/dist/components/Skeleton/SkeletonShape.vue.d.ts +2 -2
  151. package/dist/components/SplitButton/SplitButton.vue.d.ts +157 -157
  152. package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
  153. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts +30 -30
  154. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts.map +1 -1
  155. package/dist/components/SplitButton/SplitButtonStart.vue.d.ts +31 -31
  156. package/dist/components/Tab/Tab.vue.d.ts +33 -33
  157. package/dist/components/Tab/TabGroup.vue.d.ts +6 -6
  158. package/dist/components/Tab/TabPanel.vue.d.ts +2 -2
  159. package/dist/components/Text/Text.vue.d.ts +36 -1
  160. package/dist/components/Text/Text.vue.d.ts.map +1 -1
  161. package/dist/components/Text/TextConstants.d.ts +53 -0
  162. package/dist/components/Text/TextConstants.d.ts.map +1 -1
  163. package/dist/components/Text/index.d.ts +1 -1
  164. package/dist/components/TextList/TextList.vue.d.ts +87 -0
  165. package/dist/components/TextList/TextList.vue.d.ts.map +1 -0
  166. package/dist/components/TextList/TextListConstants.d.ts +20 -0
  167. package/dist/components/TextList/TextListConstants.d.ts.map +1 -0
  168. package/dist/components/TextList/TextListItem.vue.d.ts +60 -0
  169. package/dist/components/TextList/TextListItem.vue.d.ts.map +1 -0
  170. package/dist/components/TextList/Validators.d.ts +5 -0
  171. package/dist/components/TextList/Validators.d.ts.map +1 -0
  172. package/dist/components/TextList/index.d.ts +4 -0
  173. package/dist/components/TextList/index.d.ts.map +1 -0
  174. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts +144 -109
  175. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts.map +1 -1
  176. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts +34 -34
  177. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts.map +1 -1
  178. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts +142 -107
  179. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts.map +1 -1
  180. package/dist/components/Toast/Toast.vue.d.ts +580 -440
  181. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  182. package/dist/components/Toggle/Toggle.vue.d.ts +4 -4
  183. package/dist/components/Toggle/Toggle.vue.d.ts.map +1 -1
  184. package/dist/components/Tooltip/Tooltip.vue.d.ts +4 -4
  185. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts +22 -22
  186. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts.map +1 -1
  187. package/dist/dialtone-vue.cjs +1 -1
  188. package/dist/dialtone-vue.js +146 -142
  189. package/dist/index.d.ts +1 -0
  190. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  191. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  192. package/dist/lib/attachment-carousel/index.cjs +1 -1
  193. package/dist/lib/attachment-carousel/index.js +1 -1
  194. package/dist/lib/avatar/avatar.cjs +1 -1
  195. package/dist/lib/avatar/avatar.cjs.map +1 -1
  196. package/dist/lib/avatar/avatar.js +55 -54
  197. package/dist/lib/avatar/avatar.js.map +1 -1
  198. package/dist/lib/badge/badge.cjs +1 -1
  199. package/dist/lib/badge/badge.cjs.map +1 -1
  200. package/dist/lib/badge/badge.js +36 -35
  201. package/dist/lib/badge/badge.js.map +1 -1
  202. package/dist/lib/box/box-constants.cjs +1 -1
  203. package/dist/lib/box/box-constants.cjs.map +1 -1
  204. package/dist/lib/box/box-constants.js +34 -7
  205. package/dist/lib/box/box-constants.js.map +1 -1
  206. package/dist/lib/box/box.cjs +1 -1
  207. package/dist/lib/box/box.cjs.map +1 -1
  208. package/dist/lib/box/box.js +93 -34
  209. package/dist/lib/box/box.js.map +1 -1
  210. package/dist/lib/box/index.cjs +1 -1
  211. package/dist/lib/box/index.js +3 -3
  212. package/dist/lib/box/validators.cjs +1 -1
  213. package/dist/lib/box/validators.cjs.map +1 -1
  214. package/dist/lib/box/validators.js +4 -4
  215. package/dist/lib/box/validators.js.map +1 -1
  216. package/dist/lib/button/button.cjs +1 -1
  217. package/dist/lib/button/button.cjs.map +1 -1
  218. package/dist/lib/button/button.js +69 -68
  219. package/dist/lib/button/button.js.map +1 -1
  220. package/dist/lib/chip/chip.cjs +1 -1
  221. package/dist/lib/chip/chip.cjs.map +1 -1
  222. package/dist/lib/chip/chip.js +36 -35
  223. package/dist/lib/chip/chip.js.map +1 -1
  224. package/dist/lib/codeblock/codeblock.cjs +1 -1
  225. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  226. package/dist/lib/codeblock/codeblock.js +11 -10
  227. package/dist/lib/codeblock/codeblock.js.map +1 -1
  228. package/dist/lib/combobox/combobox.cjs +1 -1
  229. package/dist/lib/combobox/combobox.js +1 -1
  230. package/dist/lib/combobox/index.cjs +1 -1
  231. package/dist/lib/combobox/index.js +1 -1
  232. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  233. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  234. package/dist/lib/combobox-multi-select/combobox-multi-select.js +53 -53
  235. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  236. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  237. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  238. package/dist/lib/combobox-with-popover/combobox-with-popover.js +48 -47
  239. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  240. package/dist/lib/editor/editor.cjs +1 -1
  241. package/dist/lib/editor/editor.js +2 -2
  242. package/dist/lib/emoji/emoji.cjs +1 -1
  243. package/dist/lib/emoji/emoji.cjs.map +1 -1
  244. package/dist/lib/emoji/emoji.js +25 -24
  245. package/dist/lib/emoji/emoji.js.map +1 -1
  246. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
  247. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  248. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +20 -19
  249. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  250. package/dist/lib/empty-state/empty-state.cjs +1 -1
  251. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  252. package/dist/lib/empty-state/empty-state.js +31 -30
  253. package/dist/lib/empty-state/empty-state.js.map +1 -1
  254. package/dist/lib/filter-pill/filter-pill.cjs +1 -1
  255. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -1
  256. package/dist/lib/filter-pill/filter-pill.js +73 -72
  257. package/dist/lib/filter-pill/filter-pill.js.map +1 -1
  258. package/dist/lib/icon/icon.cjs +1 -1
  259. package/dist/lib/icon/icon.cjs.map +1 -1
  260. package/dist/lib/icon/icon.js +16 -15
  261. package/dist/lib/icon/icon.js.map +1 -1
  262. package/dist/lib/input/input.cjs +1 -1
  263. package/dist/lib/input/input.cjs.map +1 -1
  264. package/dist/lib/input/input.js +64 -63
  265. package/dist/lib/input/input.js.map +1 -1
  266. package/dist/lib/link/link-constants.cjs +1 -1
  267. package/dist/lib/link/link-constants.cjs.map +1 -1
  268. package/dist/lib/link/link-constants.js +11 -9
  269. package/dist/lib/link/link-constants.js.map +1 -1
  270. package/dist/lib/link/link.cjs +1 -1
  271. package/dist/lib/link/link.cjs.map +1 -1
  272. package/dist/lib/link/link.js +17 -14
  273. package/dist/lib/link/link.js.map +1 -1
  274. package/dist/lib/loader/loader.cjs +3 -3
  275. package/dist/lib/loader/loader.cjs.map +1 -1
  276. package/dist/lib/loader/loader.js +21 -20
  277. package/dist/lib/loader/loader.js.map +1 -1
  278. package/dist/lib/message-input/index.cjs +1 -1
  279. package/dist/lib/message-input/index.js +1 -1
  280. package/dist/lib/message-input/message-input.cjs +1 -1
  281. package/dist/lib/message-input/message-input.js +1 -1
  282. package/dist/lib/modal/index.cjs +1 -1
  283. package/dist/lib/modal/index.js +3 -3
  284. package/dist/lib/modal/modal-constants.cjs +1 -1
  285. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  286. package/dist/lib/modal/modal-constants.js +1 -4
  287. package/dist/lib/modal/modal-constants.js.map +1 -1
  288. package/dist/lib/modal/modal.cjs +1 -1
  289. package/dist/lib/modal/modal.cjs.map +1 -1
  290. package/dist/lib/modal/modal.js +40 -42
  291. package/dist/lib/modal/modal.js.map +1 -1
  292. package/dist/lib/popover/popover.cjs +1 -1
  293. package/dist/lib/popover/popover.cjs.map +1 -1
  294. package/dist/lib/popover/popover.js +1 -1
  295. package/dist/lib/popover/popover.js.map +1 -1
  296. package/dist/lib/progress-circle/progress-circle.cjs +1 -1
  297. package/dist/lib/progress-circle/progress-circle.cjs.map +1 -1
  298. package/dist/lib/progress-circle/progress-circle.js +33 -32
  299. package/dist/lib/progress-circle/progress-circle.js.map +1 -1
  300. package/dist/lib/prose/prose.cjs +1 -1
  301. package/dist/lib/prose/prose.cjs.map +1 -1
  302. package/dist/lib/prose/prose.js +23 -22
  303. package/dist/lib/prose/prose.js.map +1 -1
  304. package/dist/lib/rich-text-editor/index.cjs +1 -1
  305. package/dist/lib/rich-text-editor/index.js +1 -1
  306. package/dist/lib/rich-text-editor/markdown-renderer.js +1 -1
  307. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  308. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  309. package/dist/lib/segmented-control/segmented-control.cjs +1 -1
  310. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -1
  311. package/dist/lib/segmented-control/segmented-control.js +42 -41
  312. package/dist/lib/segmented-control/segmented-control.js.map +1 -1
  313. package/dist/lib/select-menu/select-menu.cjs +1 -1
  314. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  315. package/dist/lib/select-menu/select-menu.js +48 -47
  316. package/dist/lib/select-menu/select-menu.js.map +1 -1
  317. package/dist/lib/split-button/split-button.cjs +1 -1
  318. package/dist/lib/split-button/split-button.cjs.map +1 -1
  319. package/dist/lib/split-button/split-button.js +45 -44
  320. package/dist/lib/split-button/split-button.js.map +1 -1
  321. package/dist/lib/tab/tab-group.cjs +1 -1
  322. package/dist/lib/tab/tab-group.cjs.map +1 -1
  323. package/dist/lib/tab/tab-group.js +34 -35
  324. package/dist/lib/tab/tab-group.js.map +1 -1
  325. package/dist/lib/text/index.cjs +1 -1
  326. package/dist/lib/text/index.js +3 -3
  327. package/dist/lib/text/text-constants.cjs +1 -1
  328. package/dist/lib/text/text-constants.cjs.map +1 -1
  329. package/dist/lib/text/text-constants.js +70 -21
  330. package/dist/lib/text/text-constants.js.map +1 -1
  331. package/dist/lib/text/text.cjs +1 -1
  332. package/dist/lib/text/text.cjs.map +1 -1
  333. package/dist/lib/text/text.js +72 -37
  334. package/dist/lib/text/text.js.map +1 -1
  335. package/dist/lib/text-list/index.cjs +1 -0
  336. package/dist/lib/text-list/index.js +4 -0
  337. package/dist/lib/text-list/text-list-constants.cjs +2 -0
  338. package/dist/lib/text-list/text-list-constants.cjs.map +1 -0
  339. package/dist/lib/text-list/text-list-constants.js +31 -0
  340. package/dist/lib/text-list/text-list-constants.js.map +1 -0
  341. package/dist/lib/text-list/text-list-item.cjs +1 -0
  342. package/dist/lib/text-list/text-list-item.js +2 -0
  343. package/dist/lib/text-list/text-list.cjs +1 -0
  344. package/dist/lib/text-list/text-list.js +2 -0
  345. package/dist/lib/text-list/validators.cjs +2 -0
  346. package/dist/lib/text-list/validators.cjs.map +1 -0
  347. package/dist/lib/text-list/validators.js +10 -0
  348. package/dist/lib/text-list/validators.js.map +1 -0
  349. package/dist/lib/toast/index.cjs +1 -1
  350. package/dist/lib/toast/index.js +1 -1
  351. package/dist/lib/toast/toast.cjs +1 -1
  352. package/dist/lib/toast/toast.js +1 -1
  353. package/dist/lib/toggle/toggle.cjs +1 -1
  354. package/dist/lib/toggle/toggle.cjs.map +1 -1
  355. package/dist/lib/toggle/toggle.js +23 -22
  356. package/dist/lib/toggle/toggle.js.map +1 -1
  357. package/dist/{message_input-CbQCd07F.js → message_input-C6BcWqr8.js} +2 -2
  358. package/dist/{message_input-CbQCd07F.js.map → message_input-C6BcWqr8.js.map} +1 -1
  359. package/dist/{message_input-dBQwgyjI.cjs → message_input-ftx8f8wC.cjs} +2 -2
  360. package/dist/{message_input-dBQwgyjI.cjs.map → message_input-ftx8f8wC.cjs.map} +1 -1
  361. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  362. package/dist/node_modules/@tiptap/vue-3.js +1 -1
  363. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  364. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +33 -33
  365. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +149 -149
  366. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  367. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +147 -147
  368. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  369. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +173 -173
  370. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  371. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +40 -40
  372. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  373. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +132 -132
  374. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  375. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +97 -97
  376. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  377. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +25 -25
  378. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +107 -107
  379. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  380. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +103 -103
  381. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  382. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +672 -637
  383. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  384. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +70 -70
  385. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  386. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +66 -66
  387. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  388. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +55 -55
  389. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  390. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +55 -55
  391. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  392. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +784 -609
  393. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  394. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +145 -110
  395. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  396. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +326 -256
  397. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  398. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +185 -150
  399. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  400. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +30 -30
  401. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  402. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +30 -30
  403. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +28 -28
  404. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  405. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +72 -72
  406. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  407. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +215 -215
  408. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  409. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +176 -176
  410. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  411. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +80 -80
  412. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  413. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +181 -181
  414. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  415. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts +10 -10
  416. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  417. package/package.json +4 -4
  418. package/dist/Combobox-By01ETlj.js.map +0 -1
  419. package/dist/Combobox-D4hc1-41.cjs +0 -3
  420. package/dist/Combobox-D4hc1-41.cjs.map +0 -1
  421. package/dist/Toast-CHbVmbBg.js.map +0 -1
  422. package/dist/Toast-DX-REYXG.cjs +0 -2
  423. package/dist/Toast-DX-REYXG.cjs.map +0 -1
@@ -1,17 +1,18 @@
1
- import { hasSlotContent as e, returnFirstEl as t, warnIfUnmounted as n } from "../../common/utils/index.js";
2
- import { t as r } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
3
- import { BUTTON_IMPORTANCE_MODIFIERS as i, BUTTON_KIND_MODIFIERS as a, BUTTON_SIZE_MODIFIERS as o, ICON_POSITION_MODIFIERS as s } from "../button/button-constants.js";
4
- import c from "../dropdown/dropdown.js";
5
- import l from "./split-button-start.js";
6
- import u from "./split-button-end.js";
7
- import { Fragment as d, createBlock as f, createElementBlock as p, createSlots as m, createVNode as h, mergeProps as g, normalizeClass as _, normalizeStyle as v, openBlock as y, renderSlot as b, resolveComponent as x, withCtx as S } from "vue";
1
+ import { ordinalSizeValidator as e } from "../../common/validators/index.js";
2
+ import { hasSlotContent as t, returnFirstEl as n, warnIfUnmounted as r } from "../../common/utils/index.js";
3
+ import { t as i } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
4
+ import { BUTTON_IMPORTANCE_MODIFIERS as a, BUTTON_KIND_MODIFIERS as o, BUTTON_SIZE_MODIFIERS as s, ICON_POSITION_MODIFIERS as c } from "../button/button-constants.js";
5
+ import l from "../dropdown/dropdown.js";
6
+ import u from "./split-button-start.js";
7
+ import d from "./split-button-end.js";
8
+ import { Fragment as f, createBlock as p, createElementBlock as m, createSlots as h, createVNode as g, mergeProps as _, normalizeClass as v, normalizeStyle as y, openBlock as b, renderSlot as x, resolveComponent as S, withCtx as C } from "vue";
8
9
  //#region components/SplitButton/SplitButton.vue
9
- var C = {
10
+ var w = {
10
11
  name: "DtSplitButton",
11
12
  components: {
12
- SplitButtonEnd: u,
13
- DtDropdown: c,
14
- SplitButtonStart: l
13
+ SplitButtonEnd: d,
14
+ DtDropdown: l,
15
+ SplitButtonStart: u
15
16
  },
16
17
  inheritAttrs: !1,
17
18
  props: {
@@ -34,12 +35,12 @@ var C = {
34
35
  startIconPosition: {
35
36
  type: String,
36
37
  default: "left",
37
- validator: (e) => Object.keys(s).includes(e)
38
+ validator: (e) => Object.keys(c).includes(e)
38
39
  },
39
40
  alphaIconPosition: {
40
41
  type: String,
41
42
  default: void 0,
42
- validator: (e) => e === void 0 || Object.keys(s).includes(e)
43
+ validator: (e) => e === void 0 || Object.keys(c).includes(e)
43
44
  },
44
45
  startLabelClass: {
45
46
  type: [
@@ -128,12 +129,12 @@ var C = {
128
129
  importance: {
129
130
  type: String,
130
131
  default: "primary",
131
- validator: (e) => Object.keys(i).includes(e)
132
+ validator: (e) => Object.keys(a).includes(e)
132
133
  },
133
134
  kind: {
134
135
  type: String,
135
136
  default: "default",
136
- validator: (e) => Object.keys(a).includes(e)
137
+ validator: (e) => Object.keys(o).includes(e)
137
138
  },
138
139
  endActive: {
139
140
  type: Boolean,
@@ -178,7 +179,7 @@ var C = {
178
179
  size: {
179
180
  type: [String, Number],
180
181
  default: 300,
181
- validator: (e) => Object.keys(o).includes(String(e))
182
+ validator: e(s)
182
183
  },
183
184
  width: {
184
185
  type: String,
@@ -265,7 +266,7 @@ var C = {
265
266
  this.validateProps();
266
267
  },
267
268
  mounted() {
268
- n(t(this.$el), this.$options.name);
269
+ r(n(this.$el), this.$options.name);
269
270
  },
270
271
  methods: {
271
272
  onStartClick() {
@@ -278,39 +279,39 @@ var C = {
278
279
  this.validateStartButtonProps(), this.validateEndButtonProps(), this.validateShowDivider();
279
280
  },
280
281
  validateStartButtonProps() {
281
- e(this.$slots.default) || (e(this.$slots.startIcon) || e(this.$slots.alphaIcon)) && !(this.alphaTooltipText ?? this.startTooltipText) && console.warn("start-tooltip-text prop must be set if start button has an icon only");
282
+ t(this.$slots.default) || (t(this.$slots.startIcon) || t(this.$slots.alphaIcon)) && !(this.alphaTooltipText ?? this.startTooltipText) && console.warn("start-tooltip-text prop must be set if start button has an icon only");
282
283
  },
283
284
  validateEndButtonProps() {
284
- e(this.$slots.end) || e(this.$slots.omega) || (this.omegaTooltipText ?? this.endTooltipText) || console.warn("end-tooltip-text prop is required as it is an icon-only button");
285
+ t(this.$slots.end) || t(this.$slots.omega) || (this.omegaTooltipText ?? this.endTooltipText) || console.warn("end-tooltip-text prop is required as it is an icon-only button");
285
286
  },
286
287
  validateShowDivider() {
287
288
  !this.showDivider && this.importance !== "clear" && console.warn("show-divider prop set to false has no effect when importance is not \"clear\". The divider is always shown for \"outlined\" and \"primary\" importances.");
288
289
  }
289
290
  }
290
291
  };
291
- function w(e, t, n, r, i, a) {
292
- let o = x("split-button-start"), s = x("split-button-end"), c = x("dt-dropdown");
293
- return y(), p("span", {
292
+ function T(e, t, n, r, i, a) {
293
+ let o = S("split-button-start"), s = S("split-button-end"), c = S("dt-dropdown");
294
+ return b(), m("span", {
294
295
  "data-qa": "dt-split-button",
295
- class: _([
296
+ class: v([
296
297
  "d-split-btn",
297
298
  { "d-split-btn--no-divider": !n.showDivider && n.importance === "clear" },
298
299
  e.$attrs.class
299
300
  ]),
300
- style: v([e.$attrs.style, { width: n.width }])
301
- }, [h(o, g(a.startButtonProps, {
301
+ style: y([e.$attrs.style, { width: n.width }])
302
+ }, [g(o, _(a.startButtonProps, {
302
303
  ref: "startButton",
303
304
  onClick: a.onStartClick
304
- }), m({
305
- default: S(() => [b(e.$slots, "default")]),
305
+ }), h({
306
+ default: C(() => [x(e.$slots, "default")]),
306
307
  _: 2
307
308
  }, [
308
309
  e.$slots.startEndIcon ? {
309
310
  name: "startIcon",
310
- fn: S(({ size: t }) => [e.$slots.startIcon ? b(e.$slots, "startIcon", {
311
+ fn: C(({ size: t }) => [e.$slots.startIcon ? x(e.$slots, "startIcon", {
311
312
  key: 0,
312
313
  size: t
313
- }) : b(e.$slots, "alphaIcon", {
314
+ }) : x(e.$slots, "alphaIcon", {
314
315
  key: 1,
315
316
  size: t
316
317
  })]),
@@ -318,15 +319,15 @@ function w(e, t, n, r, i, a) {
318
319
  } : void 0,
319
320
  e.$slots.startEndIcon ? {
320
321
  name: "endIcon",
321
- fn: S(({ size: t }) => [b(e.$slots, "startEndIcon", { size: t })]),
322
+ fn: C(({ size: t }) => [x(e.$slots, "startEndIcon", { size: t })]),
322
323
  key: "1"
323
324
  } : void 0,
324
325
  e.$slots.startEndIcon ? void 0 : {
325
326
  name: "icon",
326
- fn: S(({ size: t }) => [e.$slots.startIcon ? b(e.$slots, "startIcon", {
327
+ fn: C(({ size: t }) => [e.$slots.startIcon ? x(e.$slots, "startIcon", {
327
328
  key: 0,
328
329
  size: t
329
- }) : b(e.$slots, "alphaIcon", {
330
+ }) : x(e.$slots, "alphaIcon", {
330
331
  key: 1,
331
332
  size: t
332
333
  })]),
@@ -334,51 +335,51 @@ function w(e, t, n, r, i, a) {
334
335
  },
335
336
  e.$slots.leading ? {
336
337
  name: "leading",
337
- fn: S(() => [b(e.$slots, "leading")]),
338
+ fn: C(() => [x(e.$slots, "leading")]),
338
339
  key: "3"
339
340
  } : void 0,
340
341
  e.$slots.trailing ? {
341
342
  name: "trailing",
342
- fn: S(() => [b(e.$slots, "trailing")]),
343
+ fn: C(() => [x(e.$slots, "trailing")]),
343
344
  key: "4"
344
345
  } : void 0
345
- ]), 1040, ["onClick"]), e.$slots.end ? b(e.$slots, "end", { key: 0 }) : e.$slots.omega ? b(e.$slots, "omega", { key: 1 }) : (y(), p(d, { key: 2 }, [e.$slots.dropdownList ? (y(), f(c, {
346
+ ]), 1040, ["onClick"]), e.$slots.end ? x(e.$slots, "end", { key: 0 }) : e.$slots.omega ? x(e.$slots, "omega", { key: 1 }) : (b(), m(f, { key: 2 }, [e.$slots.dropdownList ? (b(), p(c, {
346
347
  key: 0,
347
348
  placement: n.dropdownPlacement,
348
349
  onClick: t[0] || (t[0] = (e) => i.isDropdownOpen = !0),
349
350
  onOpened: t[1] || (t[1] = (e) => i.isDropdownOpen = e)
350
351
  }, {
351
- anchor: S((t) => [h(s, g({
352
+ anchor: C((t) => [g(s, _({
352
353
  ...t,
353
354
  ...a.endButtonProps
354
355
  }, {
355
356
  active: i.isDropdownOpen,
356
357
  onClick: a.onEndClick
357
358
  }), {
358
- icon: S(({ size: t }) => [e.$slots.endIcon ? b(e.$slots, "endIcon", {
359
+ icon: C(({ size: t }) => [e.$slots.endIcon ? x(e.$slots, "endIcon", {
359
360
  key: 0,
360
361
  size: t
361
- }) : b(e.$slots, "omegaIcon", {
362
+ }) : x(e.$slots, "omegaIcon", {
362
363
  key: 1,
363
364
  size: t
364
365
  })]),
365
366
  _: 3
366
367
  }, 16, ["active", "onClick"])]),
367
- list: S(({ close: t }) => [b(e.$slots, "dropdownList", { close: t })]),
368
+ list: C(({ close: t }) => [x(e.$slots, "dropdownList", { close: t })]),
368
369
  _: 3
369
- }, 8, ["placement"])) : (y(), f(s, g({ key: 1 }, a.endButtonProps, { onClick: a.onEndClick }), {
370
- icon: S(({ size: t }) => [e.$slots.endIcon ? b(e.$slots, "endIcon", {
370
+ }, 8, ["placement"])) : (b(), p(s, _({ key: 1 }, a.endButtonProps, { onClick: a.onEndClick }), {
371
+ icon: C(({ size: t }) => [e.$slots.endIcon ? x(e.$slots, "endIcon", {
371
372
  key: 0,
372
373
  size: t
373
- }) : b(e.$slots, "omegaIcon", {
374
+ }) : x(e.$slots, "omegaIcon", {
374
375
  key: 1,
375
376
  size: t
376
377
  })]),
377
378
  _: 3
378
379
  }, 16, ["onClick"]))], 64))], 6);
379
380
  }
380
- var T = /* @__PURE__ */ r(C, [["render", w]]);
381
+ var E = /* @__PURE__ */ i(w, [["render", T]]);
381
382
  //#endregion
382
- export { T as default };
383
+ export { E as default };
383
384
 
384
385
  //# sourceMappingURL=split-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"split-button.js","names":[],"sources":["../../../components/SplitButton/SplitButton.vue"],"sourcesContent":["<template>\n <span\n data-qa=\"dt-split-button\"\n :class=\"['d-split-btn', { 'd-split-btn--no-divider': !showDivider && importance === 'clear' }, $attrs.class]\"\n :style=\"[$attrs.style, { width }]\"\n >\n <split-button-start\n v-bind=\"startButtonProps\"\n ref=\"startButton\"\n @click=\"onStartClick\"\n >\n <!-- Dual-icon path: when startEndIcon is provided, use DtButton's startIcon/endIcon -->\n <template\n v-if=\"$slots.startEndIcon\"\n #startIcon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.startEndIcon\"\n #endIcon=\"{ size: iconSize }\"\n >\n <!-- @slot End-positioned icon within the start button (enables dual icons on the start button) -->\n <slot\n name=\"startEndIcon\"\n :size=\"iconSize\"\n />\n </template>\n <!-- Legacy single-icon path: uses DtButton's icon slot with iconPosition -->\n <template\n v-if=\"!$slots.startEndIcon\"\n #icon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.leading\"\n #leading\n >\n <!-- @slot Leading slot, forwarded to the alpha button's leading slot -->\n <slot name=\"leading\" />\n </template>\n <template\n v-if=\"$slots.trailing\"\n #trailing\n >\n <!-- @slot Trailing slot, forwarded to the alpha button's trailing slot -->\n <slot name=\"trailing\" />\n </template>\n <!-- @slot Default content slot -->\n <slot name=\"default\" />\n </split-button-start>\n <!-- @slot End (right) content slot, overrides end button styling and functionality completely -->\n <template v-if=\"$slots.end\">\n <slot name=\"end\" />\n </template>\n <!-- @slot @deprecated Use end -->\n <template v-else-if=\"$slots.omega\">\n <slot name=\"omega\" />\n </template>\n <template v-else>\n <dt-dropdown\n v-if=\"$slots.dropdownList\"\n :placement=\"dropdownPlacement\"\n @click=\"isDropdownOpen = true\"\n @opened=\"open => isDropdownOpen = open\"\n >\n <template #anchor=\"attrs\">\n <split-button-end\n v-bind=\"{ ...attrs, ...endButtonProps }\"\n :active=\"isDropdownOpen\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n <template #list=\"{ close }\">\n <!-- @slot Built-in dropdown content slot, use of dt-list-item is highly recommended here. -->\n <slot\n name=\"dropdownList\"\n :close=\"close\"\n />\n </template>\n </dt-dropdown>\n\n <split-button-end\n v-else\n v-bind=\"endButtonProps\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n </span>\n</template>\n\n<script>\nimport {\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_SIZE_MODIFIERS,\n ICON_POSITION_MODIFIERS,\n} from '@/components/Button';\nimport SplitButtonStart from './SplitButtonStart.vue';\nimport SplitButtonEnd from './SplitButtonEnd.vue';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { hasSlotContent, warnIfUnmounted, returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtSplitButton',\n\n components: {\n SplitButtonEnd,\n DtDropdown,\n SplitButtonStart,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the start button should have active styling\n * @values true, false\n */\n startActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startActive\n * @values true, false\n */\n alphaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the start button\n */\n startAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use startAriaLabel\n */\n alphaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * The position of the icon slot within the start button.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n startIconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * @deprecated Use startIconPosition\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n alphaIconPosition: {\n type: String,\n default: undefined,\n validator: (position) => position === undefined || Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * Used to customize the start label container\n */\n startLabelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start button leading container\n */\n startLeadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startLeadingClass\n */\n alphaLeadingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Used to customize the start button trailing container\n */\n startTrailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startTrailingClass\n */\n alphaTrailingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * @deprecated Use startLabelClass\n */\n alphaLabelClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for start button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n startDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startDisabled\n * @values true, false\n */\n alphaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Whether the start button should display a loading animation or not.\n * @values true, false\n */\n startLoading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startLoading\n * @values true, false\n */\n alphaLoading: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use startTooltipText\n */\n alphaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute for both buttons.\n * Use startDisabled or endDisabled to disable buttons individually.\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n dropdownPlacement: {\n type: String,\n default: 'bottom-end',\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * The color of the button.\n * @values default, unstyled, muted, critical, positive\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether the end button should have active styling\n * @values true, false\n */\n endActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endActive\n * @values true, false\n */\n omegaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the end button\n */\n endAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use endAriaLabel\n */\n omegaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for end button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n endDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endDisabled\n * @values true, false\n */\n omegaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover.\n */\n endId: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endId\n */\n omegaId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endTooltipText\n */\n omegaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (s) => Object.keys(BUTTON_SIZE_MODIFIERS).includes(String(s)),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n\n /**\n * Whether to show the vertical divider between the start and end buttons.\n * Only applies when importance is \"clear\".\n * @values true, false\n */\n showDivider: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Vue router `to` prop for the start button.\n * When set, renders the start button as a `<router-link>`.\n */\n startTo: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * Whether to use `router.replace()` instead of `router.push()`\n * when navigating via `startTo`.\n * @values true, false\n */\n startReplace: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML href for the start button.\n * When set, renders the start button as an `<a>` element.\n */\n startHref: {\n type: String,\n default: null,\n },\n\n /**\n * HTML target attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startTarget: {\n type: String,\n default: null,\n },\n\n /**\n * HTML rel attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startRel: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Native start button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'start-clicked',\n\n /**\n * @deprecated Use start-clicked\n */\n 'alpha-clicked',\n\n /**\n * Native end button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'end-clicked',\n\n /**\n * @deprecated Use end-clicked\n */\n 'omega-clicked',\n ],\n\n data () {\n return {\n isDropdownOpen: false,\n };\n },\n\n computed: {\n startButtonProps () {\n return {\n active: this.alphaActive ?? this.startActive,\n ariaLabel: this.alphaAriaLabel ?? this.startAriaLabel,\n assertiveOnFocus: this.assertiveOnFocus,\n disabled: this.disabled || (this.alphaDisabled ?? this.startDisabled),\n iconPosition: this.alphaIconPosition ?? this.startIconPosition,\n labelClass: this.alphaLabelClass ?? this.startLabelClass,\n leadingClass: this.alphaLeadingClass ?? this.startLeadingClass,\n trailingClass: this.alphaTrailingClass ?? this.startTrailingClass,\n loading: this.alphaLoading ?? this.startLoading,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.alphaTooltipText ?? this.startTooltipText,\n to: this.startTo,\n replace: this.startReplace,\n href: this.startHref,\n target: this.startTarget,\n rel: this.startRel,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n\n endButtonProps () {\n return {\n id: this.omegaId ?? this.endId,\n active: this.omegaActive ?? this.endActive,\n ariaLabel: this.omegaAriaLabel ?? this.endAriaLabel,\n disabled: this.disabled || (this.omegaDisabled ?? this.endDisabled),\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.omegaTooltipText ?? this.endTooltipText,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n },\n\n created () {\n this.validateProps();\n },\n\n updated () {\n this.validateProps();\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n onStartClick () {\n this.$emit('start-clicked');\n this.$emit('alpha-clicked');\n },\n\n onEndClick () {\n this.$emit('end-clicked');\n this.$emit('omega-clicked');\n },\n\n validateProps () {\n this.validateStartButtonProps();\n this.validateEndButtonProps();\n this.validateShowDivider();\n },\n\n validateStartButtonProps () {\n if (hasSlotContent(this.$slots.default)) return;\n\n if ((hasSlotContent(this.$slots.startIcon) || hasSlotContent(this.$slots.alphaIcon)) &&\n !(this.alphaTooltipText ?? this.startTooltipText)) {\n console.warn('start-tooltip-text prop must be set if start button has an icon only');\n }\n },\n\n validateEndButtonProps () {\n if (hasSlotContent(this.$slots.end) || hasSlotContent(this.$slots.omega)) return;\n\n if (!(this.omegaTooltipText ?? this.endTooltipText)) {\n console.warn('end-tooltip-text prop is required as it is an icon-only button');\n }\n },\n\n validateShowDivider () {\n if (!this.showDivider && this.importance !== 'clear') {\n console.warn(\n 'show-divider prop set to false has no effect when importance is not \"clear\". ' +\n 'The divider is always shown for \"outlined\" and \"primary\" importances.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"split-button.js","names":[],"sources":["../../../components/SplitButton/SplitButton.vue"],"sourcesContent":["<template>\n <span\n data-qa=\"dt-split-button\"\n :class=\"['d-split-btn', { 'd-split-btn--no-divider': !showDivider && importance === 'clear' }, $attrs.class]\"\n :style=\"[$attrs.style, { width }]\"\n >\n <split-button-start\n v-bind=\"startButtonProps\"\n ref=\"startButton\"\n @click=\"onStartClick\"\n >\n <!-- Dual-icon path: when startEndIcon is provided, use DtButton's startIcon/endIcon -->\n <template\n v-if=\"$slots.startEndIcon\"\n #startIcon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.startEndIcon\"\n #endIcon=\"{ size: iconSize }\"\n >\n <!-- @slot End-positioned icon within the start button (enables dual icons on the start button) -->\n <slot\n name=\"startEndIcon\"\n :size=\"iconSize\"\n />\n </template>\n <!-- Legacy single-icon path: uses DtButton's icon slot with iconPosition -->\n <template\n v-if=\"!$slots.startEndIcon\"\n #icon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.leading\"\n #leading\n >\n <!-- @slot Leading slot, forwarded to the alpha button's leading slot -->\n <slot name=\"leading\" />\n </template>\n <template\n v-if=\"$slots.trailing\"\n #trailing\n >\n <!-- @slot Trailing slot, forwarded to the alpha button's trailing slot -->\n <slot name=\"trailing\" />\n </template>\n <!-- @slot Default content slot -->\n <slot name=\"default\" />\n </split-button-start>\n <!-- @slot End (right) content slot, overrides end button styling and functionality completely -->\n <template v-if=\"$slots.end\">\n <slot name=\"end\" />\n </template>\n <!-- @slot @deprecated Use end -->\n <template v-else-if=\"$slots.omega\">\n <slot name=\"omega\" />\n </template>\n <template v-else>\n <dt-dropdown\n v-if=\"$slots.dropdownList\"\n :placement=\"dropdownPlacement\"\n @click=\"isDropdownOpen = true\"\n @opened=\"open => isDropdownOpen = open\"\n >\n <template #anchor=\"attrs\">\n <split-button-end\n v-bind=\"{ ...attrs, ...endButtonProps }\"\n :active=\"isDropdownOpen\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n <template #list=\"{ close }\">\n <!-- @slot Built-in dropdown content slot, use of dt-list-item is highly recommended here. -->\n <slot\n name=\"dropdownList\"\n :close=\"close\"\n />\n </template>\n </dt-dropdown>\n\n <split-button-end\n v-else\n v-bind=\"endButtonProps\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n </span>\n</template>\n\n<script>\nimport {\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_SIZE_MODIFIERS,\n ICON_POSITION_MODIFIERS,\n} from '@/components/Button';\nimport SplitButtonStart from './SplitButtonStart.vue';\nimport SplitButtonEnd from './SplitButtonEnd.vue';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { hasSlotContent, warnIfUnmounted, returnFirstEl } from '@/common/utils';\nimport { ordinalSizeValidator } from '@/common/validators';\n\nexport default {\n name: 'DtSplitButton',\n\n components: {\n SplitButtonEnd,\n DtDropdown,\n SplitButtonStart,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the start button should have active styling\n * @values true, false\n */\n startActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startActive\n * @values true, false\n */\n alphaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the start button\n */\n startAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use startAriaLabel\n */\n alphaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * The position of the icon slot within the start button.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n startIconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * @deprecated Use startIconPosition\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n alphaIconPosition: {\n type: String,\n default: undefined,\n validator: (position) => position === undefined || Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * Used to customize the start label container\n */\n startLabelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start button leading container\n */\n startLeadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startLeadingClass\n */\n alphaLeadingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Used to customize the start button trailing container\n */\n startTrailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startTrailingClass\n */\n alphaTrailingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * @deprecated Use startLabelClass\n */\n alphaLabelClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for start button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n startDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startDisabled\n * @values true, false\n */\n alphaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Whether the start button should display a loading animation or not.\n * @values true, false\n */\n startLoading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startLoading\n * @values true, false\n */\n alphaLoading: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use startTooltipText\n */\n alphaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute for both buttons.\n * Use startDisabled or endDisabled to disable buttons individually.\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n dropdownPlacement: {\n type: String,\n default: 'bottom-end',\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * The color of the button.\n * @values default, unstyled, muted, critical, positive\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether the end button should have active styling\n * @values true, false\n */\n endActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endActive\n * @values true, false\n */\n omegaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the end button\n */\n endAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use endAriaLabel\n */\n omegaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for end button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n endDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endDisabled\n * @values true, false\n */\n omegaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover.\n */\n endId: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endId\n */\n omegaId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endTooltipText\n */\n omegaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(BUTTON_SIZE_MODIFIERS),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n\n /**\n * Whether to show the vertical divider between the start and end buttons.\n * Only applies when importance is \"clear\".\n * @values true, false\n */\n showDivider: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Vue router `to` prop for the start button.\n * When set, renders the start button as a `<router-link>`.\n */\n startTo: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * Whether to use `router.replace()` instead of `router.push()`\n * when navigating via `startTo`.\n * @values true, false\n */\n startReplace: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML href for the start button.\n * When set, renders the start button as an `<a>` element.\n */\n startHref: {\n type: String,\n default: null,\n },\n\n /**\n * HTML target attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startTarget: {\n type: String,\n default: null,\n },\n\n /**\n * HTML rel attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startRel: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Native start button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'start-clicked',\n\n /**\n * @deprecated Use start-clicked\n */\n 'alpha-clicked',\n\n /**\n * Native end button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'end-clicked',\n\n /**\n * @deprecated Use end-clicked\n */\n 'omega-clicked',\n ],\n\n data () {\n return {\n isDropdownOpen: false,\n };\n },\n\n computed: {\n startButtonProps () {\n return {\n active: this.alphaActive ?? this.startActive,\n ariaLabel: this.alphaAriaLabel ?? this.startAriaLabel,\n assertiveOnFocus: this.assertiveOnFocus,\n disabled: this.disabled || (this.alphaDisabled ?? this.startDisabled),\n iconPosition: this.alphaIconPosition ?? this.startIconPosition,\n labelClass: this.alphaLabelClass ?? this.startLabelClass,\n leadingClass: this.alphaLeadingClass ?? this.startLeadingClass,\n trailingClass: this.alphaTrailingClass ?? this.startTrailingClass,\n loading: this.alphaLoading ?? this.startLoading,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.alphaTooltipText ?? this.startTooltipText,\n to: this.startTo,\n replace: this.startReplace,\n href: this.startHref,\n target: this.startTarget,\n rel: this.startRel,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n\n endButtonProps () {\n return {\n id: this.omegaId ?? this.endId,\n active: this.omegaActive ?? this.endActive,\n ariaLabel: this.omegaAriaLabel ?? this.endAriaLabel,\n disabled: this.disabled || (this.omegaDisabled ?? this.endDisabled),\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.omegaTooltipText ?? this.endTooltipText,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n },\n\n created () {\n this.validateProps();\n },\n\n updated () {\n this.validateProps();\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n onStartClick () {\n this.$emit('start-clicked');\n this.$emit('alpha-clicked');\n },\n\n onEndClick () {\n this.$emit('end-clicked');\n this.$emit('omega-clicked');\n },\n\n validateProps () {\n this.validateStartButtonProps();\n this.validateEndButtonProps();\n this.validateShowDivider();\n },\n\n validateStartButtonProps () {\n if (hasSlotContent(this.$slots.default)) return;\n\n if ((hasSlotContent(this.$slots.startIcon) || hasSlotContent(this.$slots.alphaIcon)) &&\n !(this.alphaTooltipText ?? this.startTooltipText)) {\n console.warn('start-tooltip-text prop must be set if start button has an icon only');\n }\n },\n\n validateEndButtonProps () {\n if (hasSlotContent(this.$slots.end) || hasSlotContent(this.$slots.omega)) return;\n\n if (!(this.omegaTooltipText ?? this.endTooltipText)) {\n console.warn('end-tooltip-text prop is required as it is an icon-only button');\n }\n },\n\n validateShowDivider () {\n if (!this.showDivider && this.importance !== 'clear') {\n console.warn(\n 'show-divider prop set to false has no effect when importance is not \"clear\". ' +\n 'The divider is always shown for \"outlined\" and \"primary\" importances.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`./tabs-constants.cjs`),n=require(`../../common/composables/use-indicator-animation.cjs`);let r=require(`vue`);var i={name:`DtTabGroup`,provide(){return{groupContext:this.provideObj,setFocus:this.setFocus}},props:{label:{type:String,default:``},selected:{type:String,default:``},disabled:{type:Boolean,default:!1},inverted:{type:Boolean,default:!1},borderless:{type:Boolean,default:!1},spread:{type:String,default:`none`,validator(e){return t.TAB_SPREADS.includes(e)}},orientation:{type:String,default:`horizontal`,validator(e){return t.TAB_ORIENTATIONS.includes(e)}},size:{type:[String,Number],default:300,validator(e){return t.TAB_LIST_SIZES.includes(String(e))}},tabsClass:{type:[String,Array,Object],default:``},tabListClass:{type:[String,Array,Object],default:void 0},tabListChildProps:{type:Object,default:()=>({})},kind:{type:String,default:`default`,validator(e){return t.TAB_GROUP_KINDS.includes(e)}},outlined:{type:Boolean,default:!1},activationMode:{type:String,default:`manual`,validator(e){return t.TAB_ACTIVATION_MODES.includes(e)}},showIndicatorTransition:{type:Boolean,default:!0}},emits:[`change`,`before-change`],setup(){let e=(0,r.ref)(null);return{tabs:e,indicator:n.useIndicatorAnimation(e,`--tab-indicator-duration`,`--tab-indicator-easing`)}},data(){return{provideObj:{selected:``,disabled:!1,size:300,kind:`default`,outlined:!1,orientation:`horizontal`,spread:`none`,focusedTabId:null},tabItems:[],TAB_LIST_SIZE_MODIFIERS:t.TAB_LIST_SIZE_MODIFIERS,TAB_LIST_KIND_MODIFIERS:t.TAB_LIST_KIND_MODIFIERS,TAB_LIST_IMPORTANCE_MODIFIERS:t.TAB_LIST_IMPORTANCE_MODIFIERS,TAB_ORIENTATION_MODIFIERS:t.TAB_ORIENTATION_MODIFIERS,TAB_SPREAD_MODIFIERS:t.TAB_SPREAD_MODIFIERS}},computed:{resolvedTabsClass(){return this.tabListClass??this.tabsClass}},watch:{disabled:{immediate:!0,handler(){this.provideObj.disabled=this.disabled}},selected:{immediate:!0,handler(e,t){this.provideObj.selected=this.selected,e!==t&&(this.provideObj.focusedTabId=null)}},size:{immediate:!0,handler(){this.provideObj.size=this.size}},kind:{immediate:!0,handler(){this.provideObj.kind=this.kind}},outlined:{immediate:!0,handler(){this.provideObj.outlined=this.outlined}},orientation:{immediate:!0,handler(){this.provideObj.orientation=this.orientation}},spread:{immediate:!0,handler(){this.provideObj.spread=this.spread}}},mounted(){this.updateSelected()},updated(){this.updateSelected()},methods:{updateSelected(){this.provideObj.selected||(this.provideObj.selected=this.selected),this.tabItems=this.getTabChildren(),this.provideObj.focusedTabId&&!this.tabItems.some(e=>e.tabId===this.provideObj.focusedTabId)&&(this.provideObj.focusedTabId=null)},setFocus(e){this.provideObj.focusedTabId!==e&&(this.provideObj.focusedTabId=e)},getTabChildren(){return Array.from(this.$refs.tabs.querySelectorAll(`[role="tab"]`)).map(e=>({context:e,panelId:e.getAttribute(`aria-controls`)?.replace(`dt-panel-`,``),tabId:e.getAttribute(`id`)?.replace(`dt-tab-`,``),isSelected:e.getAttribute(`aria-selected`)===`true`,isDisabled:e.getAttribute(`aria-disabled`)===`true`}))},onChange(){this.$emit(`change`,{...this.provideObj})},tabLeft(){this.orientation===`horizontal`&&this.navigatePrevious()},tabRight(){this.orientation===`horizontal`&&this.navigateNext()},tabUp(e){this.orientation===`vertical`&&(e.preventDefault(),this.navigatePrevious())},tabDown(e){this.orientation===`vertical`&&(e.preventDefault(),this.navigateNext())},navigatePrevious(){let e=this.getFocusedTabIndex();if(e===-1)return;let t=this.findNextTab(e,-1);this.selectFocusOnTab(t)},navigateNext(){let e=this.getFocusedTabIndex();if(e===-1)return;let t=this.findNextTab(e,1);this.selectFocusOnTab(t)},findNextTab(e,t){let n=this.tabItems.length;return(e+t+n)%n},transitionIndicator(e,t){if(!t||!this.showIndicatorTransition){this.provideObj.selected=e;return}let n=this.indicator.snapshot(`[aria-selected="true"]`);this.provideObj.selected=e,n&&this.$nextTick(()=>{let e={backgroundColor:`transparent`},r={},i=`::after`;this.outlined?(e={borderColor:`transparent`,backgroundColor:`transparent`},r={boxShadow:`inset 0 0 0 ${n.style.borderWidth} ${n.style.borderColor}`},i=`::before`):this.kind===`muted`&&(r={backgroundColor:n.style.backgroundColor},i=`::before`),this.indicator.animate({oldRect:n.rect,newEl:t,orientation:this.orientation,hideProps:e,indicatorExtra:r,pseudoElement:i})})},selectFocusOnTab(e){let{context:t,panelId:n,isDisabled:r}=this.tabItems[e];t.focus(),this.activationMode===`auto`&&!r&&(this.indicator.cancel(),this.provideObj.selected=n,this.onChange())},selectTab(e){let t=e.target.closest(`[role="tab"]`),n=t?this.tabItems.findIndex(e=>e.context===t):this.getFocusedTabIndex();n!==-1&&(this.tabItems[n]?.isDisabled||this.provideObj.selected!==this.tabItems[n]?.panelId&&(this.$emit(`before-change`,e),!e.defaultPrevented&&(e.preventDefault(),this.selectTabByIndex(n),this.onChange())))},selectTabByIndex(e){let{context:t,panelId:n}=this.tabItems[e];this.transitionIndicator(n,t),t.focus()},getFocusedTabIndex(){let e=this.provideObj.focusedTabId,t=this.tabItems.findIndex(t=>e?t.tabId===e:t.isSelected);return t===-1?0:t},onHomeButton(){this.tabItems.length&&this.selectFocusOnTab(0)},onEndButton(){this.tabItems.length&&this.selectFocusOnTab(this.tabItems.length-1)}}},a=[`aria-label`,`aria-orientation`];function o(e,t,n,i,o,s){return(0,r.openBlock)(),(0,r.createElementBlock)(`div`,{"data-qa":`dt-tab-group`,class:(0,r.normalizeClass)([`d-tab-neux`,{"d-tab-neux--vertical":n.orientation===`vertical`}])},[(0,r.createElementVNode)(`div`,(0,r.mergeProps)({ref:`tabs`,class:[`d-tablist`,o.TAB_LIST_SIZE_MODIFIERS[String(n.size)],o.TAB_ORIENTATION_MODIFIERS[n.orientation],n.orientation!==`vertical`&&o.TAB_SPREAD_MODIFIERS[n.spread],{[o.TAB_LIST_KIND_MODIFIERS.inverted]:n.inverted,[o.TAB_LIST_IMPORTANCE_MODIFIERS.borderless]:n.borderless},s.resolvedTabsClass]},n.tabListChildProps,{role:`tablist`,"aria-label":n.label,"aria-orientation":n.orientation,onKeydown:[t[0]||(t[0]=(0,r.withKeys)((...e)=>s.tabLeft&&s.tabLeft(...e),[`left`])),t[1]||(t[1]=(0,r.withKeys)((...e)=>s.tabRight&&s.tabRight(...e),[`right`])),t[2]||(t[2]=(0,r.withKeys)((...e)=>s.tabUp&&s.tabUp(...e),[`up`])),t[3]||(t[3]=(0,r.withKeys)((...e)=>s.tabDown&&s.tabDown(...e),[`down`])),t[4]||(t[4]=(0,r.withKeys)((...e)=>s.selectTab&&s.selectTab(...e),[`enter`])),t[5]||(t[5]=(0,r.withKeys)((...e)=>s.selectTab&&s.selectTab(...e),[`space`])),t[7]||(t[7]=(0,r.withKeys)((0,r.withModifiers)((...e)=>s.onHomeButton&&s.onHomeButton(...e),[`prevent`]),[`home`])),t[8]||(t[8]=(0,r.withKeys)((0,r.withModifiers)((...e)=>s.onEndButton&&s.onEndButton(...e),[`prevent`]),[`end`]))],onClick:t[6]||(t[6]=(...e)=>s.selectTab&&s.selectTab(...e))}),[(0,r.renderSlot)(e.$slots,`tabs`)],16,a),(0,r.renderSlot)(e.$slots,`default`)],2)}var s=e.t(i,[[`render`,o]]);exports.default=s;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/validators/index.cjs`),t=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),n=require(`./tabs-constants.cjs`),r=require(`../../common/composables/use-indicator-animation.cjs`);let i=require(`vue`);var a={name:`DtTabGroup`,provide(){return{groupContext:this.provideObj,setFocus:this.setFocus}},props:{label:{type:String,default:``},selected:{type:String,default:``},disabled:{type:Boolean,default:!1},inverted:{type:Boolean,default:!1},borderless:{type:Boolean,default:!1},spread:{type:String,default:`none`,validator(e){return n.TAB_SPREADS.includes(e)}},orientation:{type:String,default:`horizontal`,validator(e){return n.TAB_ORIENTATIONS.includes(e)}},size:{type:[String,Number],default:300,validator:e.ordinalSizeValidator(n.TAB_LIST_SIZES)},tabsClass:{type:[String,Array,Object],default:``},tabListClass:{type:[String,Array,Object],default:void 0},tabListChildProps:{type:Object,default:()=>({})},kind:{type:String,default:`default`,validator(e){return n.TAB_GROUP_KINDS.includes(e)}},outlined:{type:Boolean,default:!1},activationMode:{type:String,default:`manual`,validator(e){return n.TAB_ACTIVATION_MODES.includes(e)}},showIndicatorTransition:{type:Boolean,default:!0}},emits:[`change`,`before-change`],setup(){let e=(0,i.ref)(null);return{tabs:e,indicator:r.useIndicatorAnimation(e,`--tab-indicator-duration`,`--tab-indicator-easing`)}},data(){return{provideObj:{selected:``,disabled:!1,size:300,kind:`default`,outlined:!1,orientation:`horizontal`,spread:`none`,focusedTabId:null},tabItems:[],TAB_LIST_SIZE_MODIFIERS:n.TAB_LIST_SIZE_MODIFIERS,TAB_LIST_KIND_MODIFIERS:n.TAB_LIST_KIND_MODIFIERS,TAB_LIST_IMPORTANCE_MODIFIERS:n.TAB_LIST_IMPORTANCE_MODIFIERS,TAB_ORIENTATION_MODIFIERS:n.TAB_ORIENTATION_MODIFIERS,TAB_SPREAD_MODIFIERS:n.TAB_SPREAD_MODIFIERS}},computed:{resolvedTabsClass(){return this.tabListClass??this.tabsClass}},watch:{disabled:{immediate:!0,handler(){this.provideObj.disabled=this.disabled}},selected:{immediate:!0,handler(e,t){this.provideObj.selected=this.selected,e!==t&&(this.provideObj.focusedTabId=null)}},size:{immediate:!0,handler(){this.provideObj.size=this.size}},kind:{immediate:!0,handler(){this.provideObj.kind=this.kind}},outlined:{immediate:!0,handler(){this.provideObj.outlined=this.outlined}},orientation:{immediate:!0,handler(){this.provideObj.orientation=this.orientation}},spread:{immediate:!0,handler(){this.provideObj.spread=this.spread}}},mounted(){this.updateSelected()},updated(){this.updateSelected()},methods:{updateSelected(){this.provideObj.selected||(this.provideObj.selected=this.selected),this.tabItems=this.getTabChildren(),this.provideObj.focusedTabId&&!this.tabItems.some(e=>e.tabId===this.provideObj.focusedTabId)&&(this.provideObj.focusedTabId=null)},setFocus(e){this.provideObj.focusedTabId!==e&&(this.provideObj.focusedTabId=e)},getTabChildren(){return Array.from(this.$refs.tabs.querySelectorAll(`[role="tab"]`)).map(e=>({context:e,panelId:e.getAttribute(`aria-controls`)?.replace(`dt-panel-`,``),tabId:e.getAttribute(`id`)?.replace(`dt-tab-`,``),isSelected:e.getAttribute(`aria-selected`)===`true`,isDisabled:e.getAttribute(`aria-disabled`)===`true`}))},onChange(){this.$emit(`change`,{...this.provideObj})},tabLeft(){this.orientation===`horizontal`&&this.navigatePrevious()},tabRight(){this.orientation===`horizontal`&&this.navigateNext()},tabUp(e){this.orientation===`vertical`&&(e.preventDefault(),this.navigatePrevious())},tabDown(e){this.orientation===`vertical`&&(e.preventDefault(),this.navigateNext())},navigatePrevious(){let e=this.getFocusedTabIndex();if(e===-1)return;let t=this.findNextTab(e,-1);this.selectFocusOnTab(t)},navigateNext(){let e=this.getFocusedTabIndex();if(e===-1)return;let t=this.findNextTab(e,1);this.selectFocusOnTab(t)},findNextTab(e,t){let n=this.tabItems.length;return(e+t+n)%n},transitionIndicator(e,t){if(!t||!this.showIndicatorTransition){this.provideObj.selected=e;return}let n=this.indicator.snapshot(`[aria-selected="true"]`);this.provideObj.selected=e,n&&this.$nextTick(()=>{let e={backgroundColor:`transparent`},r={},i=`::after`;this.outlined?(e={borderColor:`transparent`,backgroundColor:`transparent`},r={boxShadow:`inset 0 0 0 ${n.style.borderWidth} ${n.style.borderColor}`},i=`::before`):this.kind===`muted`&&(r={backgroundColor:n.style.backgroundColor},i=`::before`),this.indicator.animate({oldRect:n.rect,newEl:t,orientation:this.orientation,hideProps:e,indicatorExtra:r,pseudoElement:i})})},selectFocusOnTab(e){let{context:t,panelId:n,isDisabled:r}=this.tabItems[e];t.focus(),this.activationMode===`auto`&&!r&&(this.indicator.cancel(),this.provideObj.selected=n,this.onChange())},selectTab(e){let t=e.target.closest(`[role="tab"]`),n=t?this.tabItems.findIndex(e=>e.context===t):this.getFocusedTabIndex();n!==-1&&(this.tabItems[n]?.isDisabled||this.provideObj.selected!==this.tabItems[n]?.panelId&&(this.$emit(`before-change`,e),!e.defaultPrevented&&(e.preventDefault(),this.selectTabByIndex(n),this.onChange())))},selectTabByIndex(e){let{context:t,panelId:n}=this.tabItems[e];this.transitionIndicator(n,t),t.focus()},getFocusedTabIndex(){let e=this.provideObj.focusedTabId,t=this.tabItems.findIndex(t=>e?t.tabId===e:t.isSelected);return t===-1?0:t},onHomeButton(){this.tabItems.length&&this.selectFocusOnTab(0)},onEndButton(){this.tabItems.length&&this.selectFocusOnTab(this.tabItems.length-1)}}},o=[`aria-label`,`aria-orientation`];function s(e,t,n,r,a,s){return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,{"data-qa":`dt-tab-group`,class:(0,i.normalizeClass)([`d-tab-neux`,{"d-tab-neux--vertical":n.orientation===`vertical`}])},[(0,i.createElementVNode)(`div`,(0,i.mergeProps)({ref:`tabs`,class:[`d-tablist`,a.TAB_LIST_SIZE_MODIFIERS[String(n.size)],a.TAB_ORIENTATION_MODIFIERS[n.orientation],n.orientation!==`vertical`&&a.TAB_SPREAD_MODIFIERS[n.spread],{[a.TAB_LIST_KIND_MODIFIERS.inverted]:n.inverted,[a.TAB_LIST_IMPORTANCE_MODIFIERS.borderless]:n.borderless},s.resolvedTabsClass]},n.tabListChildProps,{role:`tablist`,"aria-label":n.label,"aria-orientation":n.orientation,onKeydown:[t[0]||(t[0]=(0,i.withKeys)((...e)=>s.tabLeft&&s.tabLeft(...e),[`left`])),t[1]||(t[1]=(0,i.withKeys)((...e)=>s.tabRight&&s.tabRight(...e),[`right`])),t[2]||(t[2]=(0,i.withKeys)((...e)=>s.tabUp&&s.tabUp(...e),[`up`])),t[3]||(t[3]=(0,i.withKeys)((...e)=>s.tabDown&&s.tabDown(...e),[`down`])),t[4]||(t[4]=(0,i.withKeys)((...e)=>s.selectTab&&s.selectTab(...e),[`enter`])),t[5]||(t[5]=(0,i.withKeys)((...e)=>s.selectTab&&s.selectTab(...e),[`space`])),t[7]||(t[7]=(0,i.withKeys)((0,i.withModifiers)((...e)=>s.onHomeButton&&s.onHomeButton(...e),[`prevent`]),[`home`])),t[8]||(t[8]=(0,i.withKeys)((0,i.withModifiers)((...e)=>s.onEndButton&&s.onEndButton(...e),[`prevent`]),[`end`]))],onClick:t[6]||(t[6]=(...e)=>s.selectTab&&s.selectTab(...e))}),[(0,i.renderSlot)(e.$slots,`tabs`)],16,o),(0,i.renderSlot)(e.$slots,`default`)],2)}var c=t.t(a,[[`render`,s]]);exports.default=c;
2
2
  //# sourceMappingURL=tab-group.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-group.cjs","names":[],"sources":["../../../components/Tab/TabGroup.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-tab-group\"\n :class=\"['d-tab-neux', { 'd-tab-neux--vertical': orientation === 'vertical' }]\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/interactive-supports-focus -->\n <div\n ref=\"tabs\"\n :class=\"[\n 'd-tablist',\n TAB_LIST_SIZE_MODIFIERS[String(size)],\n TAB_ORIENTATION_MODIFIERS[orientation],\n orientation !== 'vertical' && TAB_SPREAD_MODIFIERS[spread],\n {\n [TAB_LIST_KIND_MODIFIERS.inverted]: inverted,\n [TAB_LIST_IMPORTANCE_MODIFIERS.borderless]: borderless,\n },\n resolvedTabsClass,\n ]\"\n v-bind=\"tabListChildProps\"\n role=\"tablist\"\n :aria-label=\"label\"\n :aria-orientation=\"orientation\"\n @keydown.left=\"tabLeft\"\n @keydown.right=\"tabRight\"\n @keydown.up=\"tabUp\"\n @keydown.down=\"tabDown\"\n @keydown.enter=\"selectTab\"\n @keydown.space=\"selectTab\"\n @click=\"selectTab\"\n @keydown.home.prevent=\"onHomeButton\"\n @keydown.end.prevent=\"onEndButton\"\n >\n <!-- @slot Slot for Tabs -->\n <slot name=\"tabs\" />\n </div>\n <!-- @slot Default slot for Panel -->\n <slot />\n </div>\n</template>\n\n<script>\nimport {\n TAB_LIST_SIZES,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n TAB_LIST_SIZE_MODIFIERS,\n TAB_ORIENTATIONS,\n TAB_ORIENTATION_MODIFIERS,\n TAB_ACTIVATION_MODES,\n TAB_GROUP_KINDS,\n TAB_SPREADS,\n TAB_SPREAD_MODIFIERS,\n} from './TabsConstants';\nimport { ref } from 'vue';\nimport { useIndicatorAnimation } from '@/common/composables/useIndicatorAnimation';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabGroup',\n\n provide () {\n return {\n groupContext: this.provideObj,\n setFocus: this.setFocus,\n };\n },\n\n props: {\n /**\n * Identifies the tab group\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * The id of the selected tab panel which should be displayed\n */\n selected: {\n type: String,\n default: '',\n },\n\n /**\n * If true, disables the tab group\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies inverted styles to the tab group\n * @deprecated Use v-dt-mode directive instead.\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies borderless styles to the tab group\n * @values true, false\n */\n borderless: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls how tabs distribute available space within the tab list.\n * @values none, grow, equal\n */\n spread: {\n type: String,\n default: 'none',\n validator (value) {\n return TAB_SPREADS.includes(value);\n },\n },\n\n /**\n * The orientation of the tab list\n * @values horizontal, vertical\n */\n orientation: {\n type: String,\n default: 'horizontal',\n validator (value) {\n return TAB_ORIENTATIONS.includes(value);\n },\n },\n\n /**\n * If provided, applies size styles to the tab group\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator (size) {\n return TAB_LIST_SIZES.includes(String(size));\n },\n },\n\n /**\n * Pass through classes, used to customize the tab list\n */\n tabsClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through classes, used to customize the tab list\n * @deprecated Use tabsClass\n */\n tabListClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Pass through props, used to customize the tab list\n */\n tabListChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * The visual style kind applied to tabs within this group.\n * Maps to specific DtButton kind/importance combinations for selected/unselected states.\n * @values default, muted\n */\n kind: {\n type: String,\n default: 'default',\n validator (value) {\n return TAB_GROUP_KINDS.includes(value);\n },\n },\n\n /**\n * If true, the selected tab renders with outlined importance instead of clear.\n * @values true, false\n */\n outlined: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls whether tabs are selected on focus (auto) or on click/keypress (manual)\n * @values auto, manual\n */\n activationMode: {\n type: String,\n default: 'manual',\n validator (value) {\n return TAB_ACTIVATION_MODES.includes(value);\n },\n },\n\n /**\n * If true, the selection indicator animates between tabs on click.\n * @values true, false\n */\n showIndicatorTransition: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Change tab event with the arguments: selected id of the current tab and disabled value\n *\n * @event change\n * @type {Object}\n */\n 'change',\n\n /**\n * Before change tab event with the event argument, useful to perform validations and prevent changing tabs if neccessary.\n *\n * @event before-change\n * @type {Event}\n */\n 'before-change',\n ],\n\n setup () {\n const tabs = ref(null);\n const indicator = useIndicatorAnimation(\n tabs, '--tab-indicator-duration', '--tab-indicator-easing',\n );\n return { tabs, indicator };\n },\n\n data () {\n return {\n provideObj: {\n selected: '', // the currently displayed tab id\n disabled: false, // disable group\n size: 300,\n kind: 'default',\n outlined: false,\n orientation: 'horizontal',\n spread: 'none',\n focusedTabId: null, // tracks last-focused tab for roving tabindex\n },\n\n tabItems: [],\n TAB_LIST_SIZE_MODIFIERS,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n TAB_ORIENTATION_MODIFIERS,\n TAB_SPREAD_MODIFIERS,\n };\n },\n\n computed: {\n resolvedTabsClass () {\n return this.tabListClass ?? this.tabsClass;\n },\n },\n\n watch: {\n disabled: {\n immediate: true,\n handler () {\n this.provideObj.disabled = this.disabled;\n },\n },\n\n selected: {\n immediate: true,\n handler (newVal, oldVal) {\n this.provideObj.selected = this.selected;\n if (newVal !== oldVal) {\n this.provideObj.focusedTabId = null;\n }\n },\n },\n\n size: {\n immediate: true,\n handler () {\n this.provideObj.size = this.size;\n },\n },\n\n kind: {\n immediate: true,\n handler () {\n this.provideObj.kind = this.kind;\n },\n },\n\n outlined: {\n immediate: true,\n handler () {\n this.provideObj.outlined = this.outlined;\n },\n },\n\n orientation: {\n immediate: true,\n handler () {\n this.provideObj.orientation = this.orientation;\n },\n },\n\n spread: {\n immediate: true,\n handler () {\n this.provideObj.spread = this.spread;\n },\n },\n },\n\n mounted () {\n this.updateSelected();\n },\n\n updated () {\n this.updateSelected();\n },\n\n methods: {\n updateSelected () {\n /**\n * Prevent override tab selected by default\n */\n if (!this.provideObj.selected) {\n this.provideObj.selected = this.selected;\n }\n this.tabItems = this.getTabChildren();\n\n // Clear stale focusedTabId if the focused tab was removed\n if (this.provideObj.focusedTabId && !this.tabItems.some(t => t.tabId === this.provideObj.focusedTabId)) {\n this.provideObj.focusedTabId = null;\n }\n },\n\n setFocus (focusId) {\n if (this.provideObj.focusedTabId !== focusId) {\n this.provideObj.focusedTabId = focusId;\n }\n },\n\n getTabChildren () {\n const tabs = Array.from(this.$refs.tabs.querySelectorAll('[role=\"tab\"]'));\n return tabs\n .map(el => {\n return ({\n context: el,\n panelId: el.getAttribute('aria-controls')?.replace('dt-panel-', ''),\n tabId: el.getAttribute('id')?.replace('dt-tab-', ''),\n isSelected: el.getAttribute('aria-selected') === 'true',\n isDisabled: el.getAttribute('aria-disabled') === 'true',\n });\n });\n },\n\n onChange () {\n this.$emit('change', { ...this.provideObj });\n },\n\n tabLeft () {\n if (this.orientation !== 'horizontal') return;\n this.navigatePrevious();\n },\n\n tabRight () {\n if (this.orientation !== 'horizontal') return;\n this.navigateNext();\n },\n\n tabUp (event) {\n if (this.orientation !== 'vertical') return;\n event.preventDefault();\n this.navigatePrevious();\n },\n\n tabDown (event) {\n if (this.orientation !== 'vertical') return;\n event.preventDefault();\n this.navigateNext();\n },\n\n navigatePrevious () {\n const index = this.getFocusedTabIndex();\n if (index === -1) return;\n\n const nextIndex = this.findNextTab(index, -1);\n this.selectFocusOnTab(nextIndex);\n },\n\n navigateNext () {\n const index = this.getFocusedTabIndex();\n if (index === -1) return;\n\n const nextIndex = this.findNextTab(index, 1);\n this.selectFocusOnTab(nextIndex);\n },\n\n findNextTab (fromIndex, direction) {\n const len = this.tabItems.length;\n return (fromIndex + direction + len) % len;\n },\n\n transitionIndicator (panelId, newContext) {\n if (!newContext || !this.showIndicatorTransition) {\n this.provideObj.selected = panelId;\n return;\n }\n\n const old = this.indicator.snapshot('[aria-selected=\"true\"]');\n\n this.provideObj.selected = panelId;\n if (!old) return;\n\n this.$nextTick(() => {\n let hideProps = { backgroundColor: 'transparent' };\n let indicatorExtra = {};\n let pseudoElement = '::after';\n\n if (this.outlined) {\n hideProps = { borderColor: 'transparent', backgroundColor: 'transparent' };\n indicatorExtra = { boxShadow: `inset 0 0 0 ${old.style.borderWidth} ${old.style.borderColor}` };\n pseudoElement = '::before';\n } else if (this.kind === 'muted') {\n indicatorExtra = { backgroundColor: old.style.backgroundColor };\n pseudoElement = '::before';\n }\n\n this.indicator.animate({\n oldRect: old.rect,\n newEl: newContext,\n orientation: this.orientation,\n hideProps,\n indicatorExtra,\n pseudoElement,\n });\n });\n },\n\n selectFocusOnTab (index) {\n const { context, panelId, isDisabled } = this.tabItems[index];\n context.focus();\n if (this.activationMode === 'auto' && !isDisabled) {\n this.indicator.cancel();\n this.provideObj.selected = panelId;\n this.onChange();\n }\n },\n\n selectTab (event) {\n const tabEl = event.target.closest('[role=\"tab\"]');\n const index = tabEl\n ? this.tabItems.findIndex(t => t.context === tabEl)\n : this.getFocusedTabIndex();\n\n if (index === -1) return;\n if (this.tabItems[index]?.isDisabled) return;\n if (this.provideObj.selected === this.tabItems[index]?.panelId) return;\n\n this.$emit('before-change', event);\n if (event.defaultPrevented) return;\n\n // Prevent keyboard defaults (Space scroll, Enter form submit)\n // after confirming the tab change will proceed\n event.preventDefault();\n\n this.selectTabByIndex(index);\n this.onChange();\n },\n\n selectTabByIndex (index) {\n const { context, panelId } = this.tabItems[index];\n this.transitionIndicator(panelId, context);\n context.focus();\n },\n\n getFocusedTabIndex () {\n const focusedId = this.provideObj.focusedTabId;\n const index = this.tabItems.findIndex((context) =>\n focusedId ? context.tabId === focusedId : context.isSelected,\n );\n\n return index === -1 ? 0 : index;\n },\n\n onHomeButton () {\n if (this.tabItems.length) this.selectFocusOnTab(0);\n },\n\n onEndButton () {\n if (this.tabItems.length) this.selectFocusOnTab(this.tabItems.length - 1);\n },\n\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"tab-group.cjs","names":[],"sources":["../../../components/Tab/TabGroup.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-tab-group\"\n :class=\"['d-tab-neux', { 'd-tab-neux--vertical': orientation === 'vertical' }]\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/interactive-supports-focus -->\n <div\n ref=\"tabs\"\n :class=\"[\n 'd-tablist',\n TAB_LIST_SIZE_MODIFIERS[String(size)],\n TAB_ORIENTATION_MODIFIERS[orientation],\n orientation !== 'vertical' && TAB_SPREAD_MODIFIERS[spread],\n {\n [TAB_LIST_KIND_MODIFIERS.inverted]: inverted,\n [TAB_LIST_IMPORTANCE_MODIFIERS.borderless]: borderless,\n },\n resolvedTabsClass,\n ]\"\n v-bind=\"tabListChildProps\"\n role=\"tablist\"\n :aria-label=\"label\"\n :aria-orientation=\"orientation\"\n @keydown.left=\"tabLeft\"\n @keydown.right=\"tabRight\"\n @keydown.up=\"tabUp\"\n @keydown.down=\"tabDown\"\n @keydown.enter=\"selectTab\"\n @keydown.space=\"selectTab\"\n @click=\"selectTab\"\n @keydown.home.prevent=\"onHomeButton\"\n @keydown.end.prevent=\"onEndButton\"\n >\n <!-- @slot Slot for Tabs -->\n <slot name=\"tabs\" />\n </div>\n <!-- @slot Default slot for Panel -->\n <slot />\n </div>\n</template>\n\n<script>\nimport {\n TAB_LIST_SIZES,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n TAB_LIST_SIZE_MODIFIERS,\n TAB_ORIENTATIONS,\n TAB_ORIENTATION_MODIFIERS,\n TAB_ACTIVATION_MODES,\n TAB_GROUP_KINDS,\n TAB_SPREADS,\n TAB_SPREAD_MODIFIERS,\n} from './TabsConstants';\nimport { ref } from 'vue';\nimport { useIndicatorAnimation } from '@/common/composables/useIndicatorAnimation';\nimport { ordinalSizeValidator } from '@/common/validators';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabGroup',\n\n provide () {\n return {\n groupContext: this.provideObj,\n setFocus: this.setFocus,\n };\n },\n\n props: {\n /**\n * Identifies the tab group\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * The id of the selected tab panel which should be displayed\n */\n selected: {\n type: String,\n default: '',\n },\n\n /**\n * If true, disables the tab group\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies inverted styles to the tab group\n * @deprecated Use v-dt-mode directive instead.\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies borderless styles to the tab group\n * @values true, false\n */\n borderless: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls how tabs distribute available space within the tab list.\n * @values none, grow, equal\n */\n spread: {\n type: String,\n default: 'none',\n validator (value) {\n return TAB_SPREADS.includes(value);\n },\n },\n\n /**\n * The orientation of the tab list\n * @values horizontal, vertical\n */\n orientation: {\n type: String,\n default: 'horizontal',\n validator (value) {\n return TAB_ORIENTATIONS.includes(value);\n },\n },\n\n /**\n * If provided, applies size styles to the tab group\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(TAB_LIST_SIZES),\n },\n\n /**\n * Pass through classes, used to customize the tab list\n */\n tabsClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through classes, used to customize the tab list\n * @deprecated Use tabsClass\n */\n tabListClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Pass through props, used to customize the tab list\n */\n tabListChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * The visual style kind applied to tabs within this group.\n * Maps to specific DtButton kind/importance combinations for selected/unselected states.\n * @values default, muted\n */\n kind: {\n type: String,\n default: 'default',\n validator (value) {\n return TAB_GROUP_KINDS.includes(value);\n },\n },\n\n /**\n * If true, the selected tab renders with outlined importance instead of clear.\n * @values true, false\n */\n outlined: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Controls whether tabs are selected on focus (auto) or on click/keypress (manual)\n * @values auto, manual\n */\n activationMode: {\n type: String,\n default: 'manual',\n validator (value) {\n return TAB_ACTIVATION_MODES.includes(value);\n },\n },\n\n /**\n * If true, the selection indicator animates between tabs on click.\n * @values true, false\n */\n showIndicatorTransition: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n /**\n * Change tab event with the arguments: selected id of the current tab and disabled value\n *\n * @event change\n * @type {Object}\n */\n 'change',\n\n /**\n * Before change tab event with the event argument, useful to perform validations and prevent changing tabs if neccessary.\n *\n * @event before-change\n * @type {Event}\n */\n 'before-change',\n ],\n\n setup () {\n const tabs = ref(null);\n const indicator = useIndicatorAnimation(\n tabs, '--tab-indicator-duration', '--tab-indicator-easing',\n );\n return { tabs, indicator };\n },\n\n data () {\n return {\n provideObj: {\n selected: '', // the currently displayed tab id\n disabled: false, // disable group\n size: 300,\n kind: 'default',\n outlined: false,\n orientation: 'horizontal',\n spread: 'none',\n focusedTabId: null, // tracks last-focused tab for roving tabindex\n },\n\n tabItems: [],\n TAB_LIST_SIZE_MODIFIERS,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n TAB_ORIENTATION_MODIFIERS,\n TAB_SPREAD_MODIFIERS,\n };\n },\n\n computed: {\n resolvedTabsClass () {\n return this.tabListClass ?? this.tabsClass;\n },\n },\n\n watch: {\n disabled: {\n immediate: true,\n handler () {\n this.provideObj.disabled = this.disabled;\n },\n },\n\n selected: {\n immediate: true,\n handler (newVal, oldVal) {\n this.provideObj.selected = this.selected;\n if (newVal !== oldVal) {\n this.provideObj.focusedTabId = null;\n }\n },\n },\n\n size: {\n immediate: true,\n handler () {\n this.provideObj.size = this.size;\n },\n },\n\n kind: {\n immediate: true,\n handler () {\n this.provideObj.kind = this.kind;\n },\n },\n\n outlined: {\n immediate: true,\n handler () {\n this.provideObj.outlined = this.outlined;\n },\n },\n\n orientation: {\n immediate: true,\n handler () {\n this.provideObj.orientation = this.orientation;\n },\n },\n\n spread: {\n immediate: true,\n handler () {\n this.provideObj.spread = this.spread;\n },\n },\n },\n\n mounted () {\n this.updateSelected();\n },\n\n updated () {\n this.updateSelected();\n },\n\n methods: {\n updateSelected () {\n /**\n * Prevent override tab selected by default\n */\n if (!this.provideObj.selected) {\n this.provideObj.selected = this.selected;\n }\n this.tabItems = this.getTabChildren();\n\n // Clear stale focusedTabId if the focused tab was removed\n if (this.provideObj.focusedTabId && !this.tabItems.some(t => t.tabId === this.provideObj.focusedTabId)) {\n this.provideObj.focusedTabId = null;\n }\n },\n\n setFocus (focusId) {\n if (this.provideObj.focusedTabId !== focusId) {\n this.provideObj.focusedTabId = focusId;\n }\n },\n\n getTabChildren () {\n const tabs = Array.from(this.$refs.tabs.querySelectorAll('[role=\"tab\"]'));\n return tabs\n .map(el => {\n return ({\n context: el,\n panelId: el.getAttribute('aria-controls')?.replace('dt-panel-', ''),\n tabId: el.getAttribute('id')?.replace('dt-tab-', ''),\n isSelected: el.getAttribute('aria-selected') === 'true',\n isDisabled: el.getAttribute('aria-disabled') === 'true',\n });\n });\n },\n\n onChange () {\n this.$emit('change', { ...this.provideObj });\n },\n\n tabLeft () {\n if (this.orientation !== 'horizontal') return;\n this.navigatePrevious();\n },\n\n tabRight () {\n if (this.orientation !== 'horizontal') return;\n this.navigateNext();\n },\n\n tabUp (event) {\n if (this.orientation !== 'vertical') return;\n event.preventDefault();\n this.navigatePrevious();\n },\n\n tabDown (event) {\n if (this.orientation !== 'vertical') return;\n event.preventDefault();\n this.navigateNext();\n },\n\n navigatePrevious () {\n const index = this.getFocusedTabIndex();\n if (index === -1) return;\n\n const nextIndex = this.findNextTab(index, -1);\n this.selectFocusOnTab(nextIndex);\n },\n\n navigateNext () {\n const index = this.getFocusedTabIndex();\n if (index === -1) return;\n\n const nextIndex = this.findNextTab(index, 1);\n this.selectFocusOnTab(nextIndex);\n },\n\n findNextTab (fromIndex, direction) {\n const len = this.tabItems.length;\n return (fromIndex + direction + len) % len;\n },\n\n transitionIndicator (panelId, newContext) {\n if (!newContext || !this.showIndicatorTransition) {\n this.provideObj.selected = panelId;\n return;\n }\n\n const old = this.indicator.snapshot('[aria-selected=\"true\"]');\n\n this.provideObj.selected = panelId;\n if (!old) return;\n\n this.$nextTick(() => {\n let hideProps = { backgroundColor: 'transparent' };\n let indicatorExtra = {};\n let pseudoElement = '::after';\n\n if (this.outlined) {\n hideProps = { borderColor: 'transparent', backgroundColor: 'transparent' };\n indicatorExtra = { boxShadow: `inset 0 0 0 ${old.style.borderWidth} ${old.style.borderColor}` };\n pseudoElement = '::before';\n } else if (this.kind === 'muted') {\n indicatorExtra = { backgroundColor: old.style.backgroundColor };\n pseudoElement = '::before';\n }\n\n this.indicator.animate({\n oldRect: old.rect,\n newEl: newContext,\n orientation: this.orientation,\n hideProps,\n indicatorExtra,\n pseudoElement,\n });\n });\n },\n\n selectFocusOnTab (index) {\n const { context, panelId, isDisabled } = this.tabItems[index];\n context.focus();\n if (this.activationMode === 'auto' && !isDisabled) {\n this.indicator.cancel();\n this.provideObj.selected = panelId;\n this.onChange();\n }\n },\n\n selectTab (event) {\n const tabEl = event.target.closest('[role=\"tab\"]');\n const index = tabEl\n ? this.tabItems.findIndex(t => t.context === tabEl)\n : this.getFocusedTabIndex();\n\n if (index === -1) return;\n if (this.tabItems[index]?.isDisabled) return;\n if (this.provideObj.selected === this.tabItems[index]?.panelId) return;\n\n this.$emit('before-change', event);\n if (event.defaultPrevented) return;\n\n // Prevent keyboard defaults (Space scroll, Enter form submit)\n // after confirming the tab change will proceed\n event.preventDefault();\n\n this.selectTabByIndex(index);\n this.onChange();\n },\n\n selectTabByIndex (index) {\n const { context, panelId } = this.tabItems[index];\n this.transitionIndicator(panelId, context);\n context.focus();\n },\n\n getFocusedTabIndex () {\n const focusedId = this.provideObj.focusedTabId;\n const index = this.tabItems.findIndex((context) =>\n focusedId ? context.tabId === focusedId : context.isSelected,\n );\n\n return index === -1 ? 0 : index;\n },\n\n onHomeButton () {\n if (this.tabItems.length) this.selectFocusOnTab(0);\n },\n\n onEndButton () {\n if (this.tabItems.length) this.selectFocusOnTab(this.tabItems.length - 1);\n },\n\n },\n};\n</script>\n"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { t as e } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
2
- import { TAB_ACTIVATION_MODES as t, TAB_GROUP_KINDS as n, TAB_LIST_IMPORTANCE_MODIFIERS as r, TAB_LIST_KIND_MODIFIERS as i, TAB_LIST_SIZES as a, TAB_LIST_SIZE_MODIFIERS as o, TAB_ORIENTATIONS as s, TAB_ORIENTATION_MODIFIERS as c, TAB_SPREADS as l, TAB_SPREAD_MODIFIERS as u } from "./tabs-constants.js";
3
- import { useIndicatorAnimation as d } from "../../common/composables/use-indicator-animation.js";
4
- import { createElementBlock as f, createElementVNode as p, mergeProps as m, normalizeClass as h, openBlock as g, ref as _, renderSlot as v, withKeys as y, withModifiers as b } from "vue";
1
+ import { ordinalSizeValidator as e } from "../../common/validators/index.js";
2
+ import { t } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
3
+ import { TAB_ACTIVATION_MODES as n, TAB_GROUP_KINDS as r, TAB_LIST_IMPORTANCE_MODIFIERS as i, TAB_LIST_KIND_MODIFIERS as a, TAB_LIST_SIZES as o, TAB_LIST_SIZE_MODIFIERS as s, TAB_ORIENTATIONS as c, TAB_ORIENTATION_MODIFIERS as l, TAB_SPREADS as u, TAB_SPREAD_MODIFIERS as d } from "./tabs-constants.js";
4
+ import { useIndicatorAnimation as f } from "../../common/composables/use-indicator-animation.js";
5
+ import { createElementBlock as p, createElementVNode as m, mergeProps as h, normalizeClass as g, openBlock as _, ref as v, renderSlot as y, withKeys as b, withModifiers as x } from "vue";
5
6
  //#region components/Tab/TabGroup.vue
6
- var x = {
7
+ var S = {
7
8
  name: "DtTabGroup",
8
9
  provide() {
9
10
  return {
@@ -36,22 +37,20 @@ var x = {
36
37
  type: String,
37
38
  default: "none",
38
39
  validator(e) {
39
- return l.includes(e);
40
+ return u.includes(e);
40
41
  }
41
42
  },
42
43
  orientation: {
43
44
  type: String,
44
45
  default: "horizontal",
45
46
  validator(e) {
46
- return s.includes(e);
47
+ return c.includes(e);
47
48
  }
48
49
  },
49
50
  size: {
50
51
  type: [String, Number],
51
52
  default: 300,
52
- validator(e) {
53
- return a.includes(String(e));
54
- }
53
+ validator: e(o)
55
54
  },
56
55
  tabsClass: {
57
56
  type: [
@@ -77,7 +76,7 @@ var x = {
77
76
  type: String,
78
77
  default: "default",
79
78
  validator(e) {
80
- return n.includes(e);
79
+ return r.includes(e);
81
80
  }
82
81
  },
83
82
  outlined: {
@@ -88,7 +87,7 @@ var x = {
88
87
  type: String,
89
88
  default: "manual",
90
89
  validator(e) {
91
- return t.includes(e);
90
+ return n.includes(e);
92
91
  }
93
92
  },
94
93
  showIndicatorTransition: {
@@ -98,10 +97,10 @@ var x = {
98
97
  },
99
98
  emits: ["change", "before-change"],
100
99
  setup() {
101
- let e = _(null);
100
+ let e = v(null);
102
101
  return {
103
102
  tabs: e,
104
- indicator: d(e, "--tab-indicator-duration", "--tab-indicator-easing")
103
+ indicator: f(e, "--tab-indicator-duration", "--tab-indicator-easing")
105
104
  };
106
105
  },
107
106
  data() {
@@ -117,11 +116,11 @@ var x = {
117
116
  focusedTabId: null
118
117
  },
119
118
  tabItems: [],
120
- TAB_LIST_SIZE_MODIFIERS: o,
121
- TAB_LIST_KIND_MODIFIERS: i,
122
- TAB_LIST_IMPORTANCE_MODIFIERS: r,
123
- TAB_ORIENTATION_MODIFIERS: c,
124
- TAB_SPREAD_MODIFIERS: u
119
+ TAB_LIST_SIZE_MODIFIERS: s,
120
+ TAB_LIST_KIND_MODIFIERS: a,
121
+ TAB_LIST_IMPORTANCE_MODIFIERS: i,
122
+ TAB_ORIENTATION_MODIFIERS: l,
123
+ TAB_SPREAD_MODIFIERS: d
125
124
  };
126
125
  },
127
126
  computed: { resolvedTabsClass() {
@@ -268,12 +267,12 @@ var x = {
268
267
  this.tabItems.length && this.selectFocusOnTab(this.tabItems.length - 1);
269
268
  }
270
269
  }
271
- }, S = ["aria-label", "aria-orientation"];
272
- function C(e, t, n, r, i, a) {
273
- return g(), f("div", {
270
+ }, C = ["aria-label", "aria-orientation"];
271
+ function w(e, t, n, r, i, a) {
272
+ return _(), p("div", {
274
273
  "data-qa": "dt-tab-group",
275
- class: h(["d-tab-neux", { "d-tab-neux--vertical": n.orientation === "vertical" }])
276
- }, [p("div", m({
274
+ class: g(["d-tab-neux", { "d-tab-neux--vertical": n.orientation === "vertical" }])
275
+ }, [m("div", h({
277
276
  ref: "tabs",
278
277
  class: [
279
278
  "d-tablist",
@@ -291,20 +290,20 @@ function C(e, t, n, r, i, a) {
291
290
  "aria-label": n.label,
292
291
  "aria-orientation": n.orientation,
293
292
  onKeydown: [
294
- t[0] || (t[0] = y((...e) => a.tabLeft && a.tabLeft(...e), ["left"])),
295
- t[1] || (t[1] = y((...e) => a.tabRight && a.tabRight(...e), ["right"])),
296
- t[2] || (t[2] = y((...e) => a.tabUp && a.tabUp(...e), ["up"])),
297
- t[3] || (t[3] = y((...e) => a.tabDown && a.tabDown(...e), ["down"])),
298
- t[4] || (t[4] = y((...e) => a.selectTab && a.selectTab(...e), ["enter"])),
299
- t[5] || (t[5] = y((...e) => a.selectTab && a.selectTab(...e), ["space"])),
300
- t[7] || (t[7] = y(b((...e) => a.onHomeButton && a.onHomeButton(...e), ["prevent"]), ["home"])),
301
- t[8] || (t[8] = y(b((...e) => a.onEndButton && a.onEndButton(...e), ["prevent"]), ["end"]))
293
+ t[0] || (t[0] = b((...e) => a.tabLeft && a.tabLeft(...e), ["left"])),
294
+ t[1] || (t[1] = b((...e) => a.tabRight && a.tabRight(...e), ["right"])),
295
+ t[2] || (t[2] = b((...e) => a.tabUp && a.tabUp(...e), ["up"])),
296
+ t[3] || (t[3] = b((...e) => a.tabDown && a.tabDown(...e), ["down"])),
297
+ t[4] || (t[4] = b((...e) => a.selectTab && a.selectTab(...e), ["enter"])),
298
+ t[5] || (t[5] = b((...e) => a.selectTab && a.selectTab(...e), ["space"])),
299
+ t[7] || (t[7] = b(x((...e) => a.onHomeButton && a.onHomeButton(...e), ["prevent"]), ["home"])),
300
+ t[8] || (t[8] = b(x((...e) => a.onEndButton && a.onEndButton(...e), ["prevent"]), ["end"]))
302
301
  ],
303
302
  onClick: t[6] || (t[6] = (...e) => a.selectTab && a.selectTab(...e))
304
- }), [v(e.$slots, "tabs")], 16, S), v(e.$slots, "default")], 2);
303
+ }), [y(e.$slots, "tabs")], 16, C), y(e.$slots, "default")], 2);
305
304
  }
306
- var w = /* @__PURE__ */ e(x, [["render", C]]);
305
+ var T = /* @__PURE__ */ t(S, [["render", w]]);
307
306
  //#endregion
308
- export { w as default };
307
+ export { T as default };
309
308
 
310
309
  //# sourceMappingURL=tab-group.js.map