@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.
- package/dist/Combobox-CYEmi3dv.cjs +3 -0
- package/dist/Combobox-CYEmi3dv.cjs.map +1 -0
- package/dist/{Combobox-By01ETlj.js → Combobox-D8nQeBIf.js} +33 -32
- package/dist/Combobox-D8nQeBIf.js.map +1 -0
- package/dist/MarkdownRenderer-D5XWsyQk.cjs.map +1 -1
- package/dist/{MarkdownRenderer-C3MZDB2I.js → MarkdownRenderer-NSSny0ID.js} +2 -2
- package/dist/{MarkdownRenderer-C3MZDB2I.js.map → MarkdownRenderer-NSSny0ID.js.map} +1 -1
- package/dist/{RichTextEditor-BX-5tCOx.cjs → RichTextEditor-B9NGgB03.cjs} +2 -2
- package/dist/{RichTextEditor-BX-5tCOx.cjs.map → RichTextEditor-B9NGgB03.cjs.map} +1 -1
- package/dist/{RichTextEditor-D8Kas5A3.js → RichTextEditor-DxbZSRop.js} +4 -4
- package/dist/{RichTextEditor-D8Kas5A3.js.map → RichTextEditor-DxbZSRop.js.map} +1 -1
- package/dist/TextList-B6XFfQfD.js +88 -0
- package/dist/TextList-B6XFfQfD.js.map +1 -0
- package/dist/TextList-Dd-ROFiI.cjs +2 -0
- package/dist/TextList-Dd-ROFiI.cjs.map +1 -0
- package/dist/TextListItem-DIlrCkaM.cjs +2 -0
- package/dist/TextListItem-DIlrCkaM.cjs.map +1 -0
- package/dist/TextListItem-ImUi_FWh.js +62 -0
- package/dist/TextListItem-ImUi_FWh.js.map +1 -0
- package/dist/{Toast-CHbVmbBg.js → Toast-BIHkIpZP.js} +95 -94
- package/dist/Toast-BIHkIpZP.js.map +1 -0
- package/dist/Toast-D8ARDEgT.cjs +2 -0
- package/dist/Toast-D8ARDEgT.cjs.map +1 -0
- package/dist/{attachment_carousel-BFIAXWOZ.js → attachment_carousel-CyiexPBk.js} +1 -1
- package/dist/{attachment_carousel-BFIAXWOZ.js.map → attachment_carousel-CyiexPBk.js.map} +1 -1
- package/dist/{attachment_carousel-BJxqNJ5T.cjs → attachment_carousel-DJqILY7f.cjs} +1 -1
- package/dist/{attachment_carousel-BJxqNJ5T.cjs.map → attachment_carousel-DJqILY7f.cjs.map} +1 -1
- package/dist/common/mixins/input.d.ts +4 -4
- package/dist/common/mixins/input_group.d.ts +2 -2
- package/dist/common/sr_only_close_button.vue.d.ts +30 -30
- package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
- package/dist/common/validators/index.cjs +1 -1
- package/dist/common/validators/index.cjs.map +1 -1
- package/dist/common/validators/index.d.ts +2 -0
- package/dist/common/validators/index.d.ts.map +1 -1
- package/dist/common/validators/index.js +9 -2
- package/dist/common/validators/index.js.map +1 -1
- package/dist/component-documentation.json +1 -1
- package/dist/components/Avatar/Avatar.vue.d.ts +10 -10
- package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
- package/dist/components/Badge/Badge.vue.d.ts +13 -13
- package/dist/components/Banner/Banner.vue.d.ts +142 -107
- package/dist/components/Banner/Banner.vue.d.ts.map +1 -1
- package/dist/components/Box/Box.vue.d.ts +18 -0
- package/dist/components/Box/Box.vue.d.ts.map +1 -1
- package/dist/components/Box/BoxConstants.d.ts +4 -0
- package/dist/components/Box/BoxConstants.d.ts.map +1 -1
- package/dist/components/Box/Validators.d.ts +4 -0
- package/dist/components/Box/Validators.d.ts.map +1 -1
- package/dist/components/Box/index.d.ts +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts +1 -0
- package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.vue.d.ts +3 -2
- package/dist/components/Button/Button.vue.d.ts +25 -25
- package/dist/components/Button/Button.vue.d.ts.map +1 -1
- package/dist/components/Card/Card.vue.d.ts +6 -6
- package/dist/components/Checkbox/Checkbox.vue.d.ts +62 -27
- package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +82 -47
- package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -1
- package/dist/components/Chip/Chip.vue.d.ts +40 -40
- package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
- package/dist/components/Codeblock/Codeblock.vue.d.ts +2 -2
- package/dist/components/Collapsible/Collapsible.vue.d.ts +39 -39
- package/dist/components/Collapsible/Collapsible.vue.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.vue.d.ts +66 -66
- package/dist/components/Combobox/Combobox.vue.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts +29 -29
- package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts.map +1 -1
- package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts +35 -35
- package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts.map +1 -1
- package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts +216 -216
- package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts.map +1 -1
- package/dist/components/DescriptionList/DescriptionList.vue.d.ts +4 -4
- package/dist/components/Dropdown/Dropdown.vue.d.ts +82 -82
- package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
- package/dist/components/Emoji/Emoji.vue.d.ts +17 -17
- package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts +73 -38
- package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts.map +1 -1
- package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts +73 -38
- package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts.map +1 -1
- package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts +24 -24
- package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.vue.d.ts.map +1 -1
- package/dist/components/FilterPill/FilterPill.vue.d.ts +380 -310
- package/dist/components/FilterPill/FilterPill.vue.d.ts.map +1 -1
- package/dist/components/Hovercard/Hovercard.vue.d.ts +156 -156
- package/dist/components/Hovercard/Hovercard.vue.d.ts.map +1 -1
- package/dist/components/Icon/Icon.vue.d.ts +7 -7
- package/dist/components/ImageViewer/ImageViewer.vue.d.ts +60 -60
- package/dist/components/ImageViewer/ImageViewer.vue.d.ts.map +1 -1
- package/dist/components/Input/Input.vue.d.ts +73 -38
- package/dist/components/Input/Input.vue.d.ts.map +1 -1
- package/dist/components/InputGroup/InputGroup.vue.d.ts +82 -47
- package/dist/components/InputGroup/InputGroup.vue.d.ts.map +1 -1
- package/dist/components/ItemLayout/ItemLayout.vue.d.ts +20 -20
- package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts +116 -81
- package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts.map +1 -1
- package/dist/components/Link/Link.vue.d.ts +1 -0
- package/dist/components/Link/LinkConstants.d.ts +3 -0
- package/dist/components/Link/LinkConstants.d.ts.map +1 -1
- package/dist/components/ListItem/ListItem.vue.d.ts +27 -27
- package/dist/components/ListItem/ListItem.vue.d.ts.map +1 -1
- package/dist/components/ListItemGroup/ListItemGroup.vue.d.ts +4 -4
- package/dist/components/Loader/Loader.vue.d.ts +7 -7
- package/dist/components/Modal/Modal.vue.d.ts +115 -86
- package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
- package/dist/components/Modal/ModalConstants.d.ts +0 -5
- package/dist/components/Modal/index.d.ts +1 -1
- package/dist/components/Notice/Notice.vue.d.ts +142 -107
- package/dist/components/Notice/Notice.vue.d.ts.map +1 -1
- package/dist/components/Notice/NoticeAction.vue.d.ts +62 -62
- package/dist/components/Notice/NoticeAction.vue.d.ts.map +1 -1
- package/dist/components/Notice/NoticeContent.vue.d.ts +40 -5
- package/dist/components/Notice/NoticeContent.vue.d.ts.map +1 -1
- package/dist/components/Notice/NoticeIcon.vue.d.ts +32 -32
- package/dist/components/Notice/NoticeIcon.vue.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.vue.d.ts +40 -40
- package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
- package/dist/components/Popover/Popover.vue.d.ts +78 -78
- package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
- package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts +34 -34
- package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts.map +1 -1
- package/dist/components/ProgressCircle/ProgressCircle.vue.d.ts +7 -7
- package/dist/components/Prose/Prose.vue.d.ts.map +1 -1
- package/dist/components/Radio/Radio.vue.d.ts +62 -27
- package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.vue.d.ts +82 -47
- package/dist/components/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
- package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts +6 -5
- package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts.map +1 -1
- package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts +10 -10
- package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts.map +1 -1
- package/dist/components/RichTextEditor/Extensions/Emoji/EmojiComponent.vue.d.ts +17 -17
- package/dist/components/RichTextEditor/Extensions/Emoji/EmojiSuggestion.vue.d.ts +17 -17
- package/dist/components/RichTextEditor/Extensions/Mentions/MentionComponent.vue.d.ts +1 -0
- package/dist/components/RichTextEditor/Extensions/Mentions/MentionSuggestion.vue.d.ts +46 -11
- package/dist/components/RichTextEditor/Extensions/SlashCommand/SlashCommandSuggestion.vue.d.ts +36 -1
- package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts +27 -27
- package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts.map +1 -1
- package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts +189 -154
- package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts.map +1 -1
- package/dist/components/RootLayout/RootLayout.vue.d.ts +10 -10
- package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
- package/dist/components/SelectMenu/SelectMenu.vue.d.ts +69 -34
- package/dist/components/SelectMenu/SelectMenu.vue.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.vue.d.ts +8 -8
- package/dist/components/Skeleton/SkeletonListItem.vue.d.ts +4 -4
- package/dist/components/Skeleton/SkeletonParagraph.vue.d.ts +2 -2
- package/dist/components/Skeleton/SkeletonShape.vue.d.ts +2 -2
- package/dist/components/SplitButton/SplitButton.vue.d.ts +157 -157
- package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
- package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts +30 -30
- package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts.map +1 -1
- package/dist/components/SplitButton/SplitButtonStart.vue.d.ts +31 -31
- package/dist/components/Tab/Tab.vue.d.ts +33 -33
- package/dist/components/Tab/TabGroup.vue.d.ts +6 -6
- package/dist/components/Tab/TabPanel.vue.d.ts +2 -2
- package/dist/components/Text/Text.vue.d.ts +36 -1
- package/dist/components/Text/Text.vue.d.ts.map +1 -1
- package/dist/components/Text/TextConstants.d.ts +53 -0
- package/dist/components/Text/TextConstants.d.ts.map +1 -1
- package/dist/components/Text/index.d.ts +1 -1
- package/dist/components/TextList/TextList.vue.d.ts +87 -0
- package/dist/components/TextList/TextList.vue.d.ts.map +1 -0
- package/dist/components/TextList/TextListConstants.d.ts +20 -0
- package/dist/components/TextList/TextListConstants.d.ts.map +1 -0
- package/dist/components/TextList/TextListItem.vue.d.ts +60 -0
- package/dist/components/TextList/TextListItem.vue.d.ts.map +1 -0
- package/dist/components/TextList/Validators.d.ts +5 -0
- package/dist/components/TextList/Validators.d.ts.map +1 -0
- package/dist/components/TextList/index.d.ts +4 -0
- package/dist/components/TextList/index.d.ts.map +1 -0
- package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts +144 -109
- package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts.map +1 -1
- package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts +34 -34
- package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts.map +1 -1
- package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts +142 -107
- package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts.map +1 -1
- package/dist/components/Toast/Toast.vue.d.ts +580 -440
- package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
- package/dist/components/Toggle/Toggle.vue.d.ts +4 -4
- package/dist/components/Toggle/Toggle.vue.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.vue.d.ts +4 -4
- package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts +22 -22
- package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts.map +1 -1
- package/dist/dialtone-vue.cjs +1 -1
- package/dist/dialtone-vue.js +146 -142
- package/dist/index.d.ts +1 -0
- package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
- package/dist/lib/attachment-carousel/index.cjs +1 -1
- package/dist/lib/attachment-carousel/index.js +1 -1
- package/dist/lib/avatar/avatar.cjs +1 -1
- package/dist/lib/avatar/avatar.cjs.map +1 -1
- package/dist/lib/avatar/avatar.js +55 -54
- package/dist/lib/avatar/avatar.js.map +1 -1
- package/dist/lib/badge/badge.cjs +1 -1
- package/dist/lib/badge/badge.cjs.map +1 -1
- package/dist/lib/badge/badge.js +36 -35
- package/dist/lib/badge/badge.js.map +1 -1
- package/dist/lib/box/box-constants.cjs +1 -1
- package/dist/lib/box/box-constants.cjs.map +1 -1
- package/dist/lib/box/box-constants.js +34 -7
- package/dist/lib/box/box-constants.js.map +1 -1
- package/dist/lib/box/box.cjs +1 -1
- package/dist/lib/box/box.cjs.map +1 -1
- package/dist/lib/box/box.js +93 -34
- package/dist/lib/box/box.js.map +1 -1
- package/dist/lib/box/index.cjs +1 -1
- package/dist/lib/box/index.js +3 -3
- package/dist/lib/box/validators.cjs +1 -1
- package/dist/lib/box/validators.cjs.map +1 -1
- package/dist/lib/box/validators.js +4 -4
- package/dist/lib/box/validators.js.map +1 -1
- package/dist/lib/button/button.cjs +1 -1
- package/dist/lib/button/button.cjs.map +1 -1
- package/dist/lib/button/button.js +69 -68
- package/dist/lib/button/button.js.map +1 -1
- package/dist/lib/chip/chip.cjs +1 -1
- package/dist/lib/chip/chip.cjs.map +1 -1
- package/dist/lib/chip/chip.js +36 -35
- package/dist/lib/chip/chip.js.map +1 -1
- package/dist/lib/codeblock/codeblock.cjs +1 -1
- package/dist/lib/codeblock/codeblock.cjs.map +1 -1
- package/dist/lib/codeblock/codeblock.js +11 -10
- package/dist/lib/codeblock/codeblock.js.map +1 -1
- package/dist/lib/combobox/combobox.cjs +1 -1
- package/dist/lib/combobox/combobox.js +1 -1
- package/dist/lib/combobox/index.cjs +1 -1
- package/dist/lib/combobox/index.js +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.js +53 -53
- package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.js +48 -47
- package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
- package/dist/lib/editor/editor.cjs +1 -1
- package/dist/lib/editor/editor.js +2 -2
- package/dist/lib/emoji/emoji.cjs +1 -1
- package/dist/lib/emoji/emoji.cjs.map +1 -1
- package/dist/lib/emoji/emoji.js +25 -24
- package/dist/lib/emoji/emoji.js.map +1 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +20 -19
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
- package/dist/lib/empty-state/empty-state.cjs +1 -1
- package/dist/lib/empty-state/empty-state.cjs.map +1 -1
- package/dist/lib/empty-state/empty-state.js +31 -30
- package/dist/lib/empty-state/empty-state.js.map +1 -1
- package/dist/lib/filter-pill/filter-pill.cjs +1 -1
- package/dist/lib/filter-pill/filter-pill.cjs.map +1 -1
- package/dist/lib/filter-pill/filter-pill.js +73 -72
- package/dist/lib/filter-pill/filter-pill.js.map +1 -1
- package/dist/lib/icon/icon.cjs +1 -1
- package/dist/lib/icon/icon.cjs.map +1 -1
- package/dist/lib/icon/icon.js +16 -15
- package/dist/lib/icon/icon.js.map +1 -1
- package/dist/lib/input/input.cjs +1 -1
- package/dist/lib/input/input.cjs.map +1 -1
- package/dist/lib/input/input.js +64 -63
- package/dist/lib/input/input.js.map +1 -1
- package/dist/lib/link/link-constants.cjs +1 -1
- package/dist/lib/link/link-constants.cjs.map +1 -1
- package/dist/lib/link/link-constants.js +11 -9
- package/dist/lib/link/link-constants.js.map +1 -1
- package/dist/lib/link/link.cjs +1 -1
- package/dist/lib/link/link.cjs.map +1 -1
- package/dist/lib/link/link.js +17 -14
- package/dist/lib/link/link.js.map +1 -1
- package/dist/lib/loader/loader.cjs +3 -3
- package/dist/lib/loader/loader.cjs.map +1 -1
- package/dist/lib/loader/loader.js +21 -20
- package/dist/lib/loader/loader.js.map +1 -1
- package/dist/lib/message-input/index.cjs +1 -1
- package/dist/lib/message-input/index.js +1 -1
- package/dist/lib/message-input/message-input.cjs +1 -1
- package/dist/lib/message-input/message-input.js +1 -1
- package/dist/lib/modal/index.cjs +1 -1
- package/dist/lib/modal/index.js +3 -3
- package/dist/lib/modal/modal-constants.cjs +1 -1
- package/dist/lib/modal/modal-constants.cjs.map +1 -1
- package/dist/lib/modal/modal-constants.js +1 -4
- package/dist/lib/modal/modal-constants.js.map +1 -1
- package/dist/lib/modal/modal.cjs +1 -1
- package/dist/lib/modal/modal.cjs.map +1 -1
- package/dist/lib/modal/modal.js +40 -42
- package/dist/lib/modal/modal.js.map +1 -1
- package/dist/lib/popover/popover.cjs +1 -1
- package/dist/lib/popover/popover.cjs.map +1 -1
- package/dist/lib/popover/popover.js +1 -1
- package/dist/lib/popover/popover.js.map +1 -1
- package/dist/lib/progress-circle/progress-circle.cjs +1 -1
- package/dist/lib/progress-circle/progress-circle.cjs.map +1 -1
- package/dist/lib/progress-circle/progress-circle.js +33 -32
- package/dist/lib/progress-circle/progress-circle.js.map +1 -1
- package/dist/lib/prose/prose.cjs +1 -1
- package/dist/lib/prose/prose.cjs.map +1 -1
- package/dist/lib/prose/prose.js +23 -22
- package/dist/lib/prose/prose.js.map +1 -1
- package/dist/lib/rich-text-editor/index.cjs +1 -1
- package/dist/lib/rich-text-editor/index.js +1 -1
- package/dist/lib/rich-text-editor/markdown-renderer.js +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
- package/dist/lib/segmented-control/segmented-control.cjs +1 -1
- package/dist/lib/segmented-control/segmented-control.cjs.map +1 -1
- package/dist/lib/segmented-control/segmented-control.js +42 -41
- package/dist/lib/segmented-control/segmented-control.js.map +1 -1
- package/dist/lib/select-menu/select-menu.cjs +1 -1
- package/dist/lib/select-menu/select-menu.cjs.map +1 -1
- package/dist/lib/select-menu/select-menu.js +48 -47
- package/dist/lib/select-menu/select-menu.js.map +1 -1
- package/dist/lib/split-button/split-button.cjs +1 -1
- package/dist/lib/split-button/split-button.cjs.map +1 -1
- package/dist/lib/split-button/split-button.js +45 -44
- package/dist/lib/split-button/split-button.js.map +1 -1
- package/dist/lib/tab/tab-group.cjs +1 -1
- package/dist/lib/tab/tab-group.cjs.map +1 -1
- package/dist/lib/tab/tab-group.js +34 -35
- package/dist/lib/tab/tab-group.js.map +1 -1
- package/dist/lib/text/index.cjs +1 -1
- package/dist/lib/text/index.js +3 -3
- package/dist/lib/text/text-constants.cjs +1 -1
- package/dist/lib/text/text-constants.cjs.map +1 -1
- package/dist/lib/text/text-constants.js +70 -21
- package/dist/lib/text/text-constants.js.map +1 -1
- package/dist/lib/text/text.cjs +1 -1
- package/dist/lib/text/text.cjs.map +1 -1
- package/dist/lib/text/text.js +72 -37
- package/dist/lib/text/text.js.map +1 -1
- package/dist/lib/text-list/index.cjs +1 -0
- package/dist/lib/text-list/index.js +4 -0
- package/dist/lib/text-list/text-list-constants.cjs +2 -0
- package/dist/lib/text-list/text-list-constants.cjs.map +1 -0
- package/dist/lib/text-list/text-list-constants.js +31 -0
- package/dist/lib/text-list/text-list-constants.js.map +1 -0
- package/dist/lib/text-list/text-list-item.cjs +1 -0
- package/dist/lib/text-list/text-list-item.js +2 -0
- package/dist/lib/text-list/text-list.cjs +1 -0
- package/dist/lib/text-list/text-list.js +2 -0
- package/dist/lib/text-list/validators.cjs +2 -0
- package/dist/lib/text-list/validators.cjs.map +1 -0
- package/dist/lib/text-list/validators.js +10 -0
- package/dist/lib/text-list/validators.js.map +1 -0
- package/dist/lib/toast/index.cjs +1 -1
- package/dist/lib/toast/index.js +1 -1
- package/dist/lib/toast/toast.cjs +1 -1
- package/dist/lib/toast/toast.js +1 -1
- package/dist/lib/toggle/toggle.cjs +1 -1
- package/dist/lib/toggle/toggle.cjs.map +1 -1
- package/dist/lib/toggle/toggle.js +23 -22
- package/dist/lib/toggle/toggle.js.map +1 -1
- package/dist/{message_input-CbQCd07F.js → message_input-C6BcWqr8.js} +2 -2
- package/dist/{message_input-CbQCd07F.js.map → message_input-C6BcWqr8.js.map} +1 -1
- package/dist/{message_input-dBQwgyjI.cjs → message_input-ftx8f8wC.cjs} +2 -2
- package/dist/{message_input-dBQwgyjI.cjs.map → message_input-ftx8f8wC.cjs.map} +1 -1
- package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.js +1 -1
- package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +33 -33
- package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +149 -149
- package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +147 -147
- package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
- package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +173 -173
- package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
- package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +40 -40
- package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +132 -132
- package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +97 -97
- package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +25 -25
- package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +107 -107
- package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +103 -103
- package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/editor/editor.vue.d.ts +672 -637
- package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +70 -70
- package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +66 -66
- package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +55 -55
- package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +55 -55
- package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +784 -609
- package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +145 -110
- package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +326 -256
- package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
- package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +185 -150
- package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
- package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +30 -30
- package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
- package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +30 -30
- package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +28 -28
- package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
- package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +72 -72
- package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
- package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +215 -215
- package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
- package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +176 -176
- package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
- package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +80 -80
- package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
- package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +181 -181
- package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts +10 -10
- package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/Combobox-By01ETlj.js.map +0 -1
- package/dist/Combobox-D4hc1-41.cjs +0 -3
- package/dist/Combobox-D4hc1-41.cjs.map +0 -1
- package/dist/Toast-CHbVmbBg.js.map +0 -1
- package/dist/Toast-DX-REYXG.cjs +0 -2
- package/dist/Toast-DX-REYXG.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-menu.cjs","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(String(s)),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select-menu.cjs","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { ordinalSizeValidator } from '@/common/validators';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(SELECT_SIZE_MODIFIERS),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { VALIDATION_MESSAGE_TYPES as e } from "../../common/constants/index.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import s from "
|
|
6
|
-
import
|
|
7
|
-
import u from "../text/text.js";
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
2
|
+
import { ordinalSizeValidator as t } from "../../common/validators/index.js";
|
|
3
|
+
import { getUniqueString as n, getValidationState as r, hasSlotContent as i, removeClassStyleAttrs as a } from "../../common/utils/index.js";
|
|
4
|
+
import { MessagesMixin as o } from "../../common/mixins/input.js";
|
|
5
|
+
import { t as s } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
|
|
6
|
+
import c from "../validation-messages/validation-messages.js";
|
|
7
|
+
import { TEXT_SIZE_MODIFIERS as l, TEXT_STRENGTH_MODIFIERS as u } from "../text/text-constants.js";
|
|
8
|
+
import d from "../text/text.js";
|
|
9
|
+
import { SELECT_SIZE_MODIFIERS as f, SELECT_STATE_MODIFIERS as p } from "./select-menu-constants.js";
|
|
10
|
+
import { optionsValidator as m } from "./select-menu-validators.js";
|
|
11
|
+
import { Fragment as h, createBlock as g, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createTextVNode as b, createVNode as x, mergeProps as S, normalizeClass as C, normalizeStyle as w, openBlock as T, renderList as E, renderSlot as D, resolveComponent as O, toDisplayString as k, toHandlers as A, warn as j, withCtx as M } from "vue";
|
|
11
12
|
//#region components/SelectMenu/SelectMenu.vue
|
|
12
|
-
var
|
|
13
|
+
var N = {
|
|
13
14
|
name: "DtSelectMenu",
|
|
14
15
|
components: {
|
|
15
|
-
DtValidationMessages:
|
|
16
|
-
DtText:
|
|
16
|
+
DtValidationMessages: c,
|
|
17
|
+
DtText: d
|
|
17
18
|
},
|
|
18
|
-
mixins: [
|
|
19
|
+
mixins: [o],
|
|
19
20
|
inheritAttrs: !1,
|
|
20
21
|
props: {
|
|
21
22
|
label: {
|
|
@@ -33,12 +34,12 @@ var M = {
|
|
|
33
34
|
options: {
|
|
34
35
|
type: Array,
|
|
35
36
|
default: () => [],
|
|
36
|
-
validator: (e) =>
|
|
37
|
+
validator: (e) => m(e)
|
|
37
38
|
},
|
|
38
39
|
size: {
|
|
39
40
|
type: [String, Number],
|
|
40
41
|
default: 300,
|
|
41
|
-
validator: (
|
|
42
|
+
validator: t(f)
|
|
42
43
|
},
|
|
43
44
|
labelClass: {
|
|
44
45
|
type: [
|
|
@@ -95,21 +96,21 @@ var M = {
|
|
|
95
96
|
labelSize: {
|
|
96
97
|
type: [String, Number],
|
|
97
98
|
default: null,
|
|
98
|
-
validator: (e) =>
|
|
99
|
+
validator: (e) => l.label.includes(String(e))
|
|
99
100
|
},
|
|
100
101
|
labelStrength: {
|
|
101
102
|
type: String,
|
|
102
103
|
default: null,
|
|
103
|
-
validator: (e) => Object.keys(
|
|
104
|
+
validator: (e) => Object.keys(u).includes(e)
|
|
104
105
|
}
|
|
105
106
|
},
|
|
106
107
|
emits: ["update:modelValue"],
|
|
107
108
|
data() {
|
|
108
109
|
return {
|
|
109
|
-
SELECT_SIZE_MODIFIERS:
|
|
110
|
-
SELECT_STATE_MODIFIERS:
|
|
111
|
-
hasSlotContent:
|
|
112
|
-
messagesId:
|
|
110
|
+
SELECT_SIZE_MODIFIERS: f,
|
|
111
|
+
SELECT_STATE_MODIFIERS: p,
|
|
112
|
+
hasSlotContent: i,
|
|
113
|
+
messagesId: n()
|
|
113
114
|
};
|
|
114
115
|
},
|
|
115
116
|
computed: {
|
|
@@ -143,7 +144,7 @@ var M = {
|
|
|
143
144
|
};
|
|
144
145
|
},
|
|
145
146
|
state() {
|
|
146
|
-
return
|
|
147
|
+
return r(this.formattedMessages);
|
|
147
148
|
},
|
|
148
149
|
ariaInvalid() {
|
|
149
150
|
return this.state === e.CRITICAL ? "true" : void 0;
|
|
@@ -152,7 +153,7 @@ var M = {
|
|
|
152
153
|
return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : void 0;
|
|
153
154
|
},
|
|
154
155
|
selectKey() {
|
|
155
|
-
return
|
|
156
|
+
return n();
|
|
156
157
|
},
|
|
157
158
|
descriptionKey() {
|
|
158
159
|
return `select-${this.selectKey}-description`;
|
|
@@ -168,7 +169,7 @@ var M = {
|
|
|
168
169
|
this.validateOptionsPresence();
|
|
169
170
|
},
|
|
170
171
|
methods: {
|
|
171
|
-
removeClassStyleAttrs:
|
|
172
|
+
removeClassStyleAttrs: a,
|
|
172
173
|
emitValue(e, t) {
|
|
173
174
|
this.$emit("update:modelValue", e, t);
|
|
174
175
|
},
|
|
@@ -176,26 +177,26 @@ var M = {
|
|
|
176
177
|
return `select-${this.selectKey}-option-${e}`;
|
|
177
178
|
},
|
|
178
179
|
validateOptionsPresence() {
|
|
179
|
-
this.options?.length < 1 && !this.$slots.default &&
|
|
180
|
+
this.options?.length < 1 && !this.$slots.default && j("Options are expected to be provided via prop or slot", this);
|
|
180
181
|
},
|
|
181
182
|
runValidations() {
|
|
182
183
|
!(this.$slots.label || this.label) && !this.$attrs["aria-label"] && console.info("[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.");
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
|
-
},
|
|
186
|
+
}, P = [
|
|
186
187
|
"aria-label",
|
|
187
188
|
"aria-invalid",
|
|
188
189
|
"aria-describedby",
|
|
189
190
|
"disabled",
|
|
190
191
|
"value"
|
|
191
|
-
],
|
|
192
|
-
function
|
|
193
|
-
let o =
|
|
194
|
-
return
|
|
195
|
-
class:
|
|
196
|
-
style:
|
|
197
|
-
}, [
|
|
198
|
-
n.showLabel && (i.hasSlotContent(e.$slots.label) || n.label) ? (
|
|
192
|
+
], F = ["value"];
|
|
193
|
+
function I(e, t, n, r, i, a) {
|
|
194
|
+
let o = O("dt-text"), s = O("dt-validation-messages");
|
|
195
|
+
return T(), v("div", {
|
|
196
|
+
class: C(e.$attrs.class),
|
|
197
|
+
style: w(e.$attrs.style)
|
|
198
|
+
}, [y("label", null, [
|
|
199
|
+
n.showLabel && (i.hasSlotContent(e.$slots.label) || n.label) ? (T(), g(o, S({
|
|
199
200
|
key: 0,
|
|
200
201
|
kind: "label",
|
|
201
202
|
size: a.resolvedLabelSize,
|
|
@@ -205,15 +206,15 @@ function F(e, t, n, r, i, a) {
|
|
|
205
206
|
"aria-details": a.labelAriaDetails,
|
|
206
207
|
class: ["d-select__label-text", n.labelClass]
|
|
207
208
|
}, n.labelChildProps, { "data-qa": "dt-select-label" }), {
|
|
208
|
-
default:
|
|
209
|
+
default: M(() => [D(e.$slots, "label", {}, () => [b(k(n.label), 1)])]),
|
|
209
210
|
_: 3
|
|
210
211
|
}, 16, [
|
|
211
212
|
"size",
|
|
212
213
|
"strength",
|
|
213
214
|
"aria-details",
|
|
214
215
|
"class"
|
|
215
|
-
])) :
|
|
216
|
-
i.hasSlotContent(e.$slots.description) || n.description ? (
|
|
216
|
+
])) : _("", !0),
|
|
217
|
+
i.hasSlotContent(e.$slots.description) || n.description ? (T(), g(o, S({
|
|
217
218
|
key: 1,
|
|
218
219
|
id: a.descriptionKey,
|
|
219
220
|
kind: "body",
|
|
@@ -223,23 +224,23 @@ function F(e, t, n, r, i, a) {
|
|
|
223
224
|
as: "div",
|
|
224
225
|
class: ["d-description", n.descriptionClass]
|
|
225
226
|
}, n.descriptionChildProps, { "data-qa": "dt-select-description" }), {
|
|
226
|
-
default:
|
|
227
|
+
default: M(() => [D(e.$slots, "description", {}, () => [b(k(n.description), 1)])]),
|
|
227
228
|
_: 3
|
|
228
229
|
}, 16, [
|
|
229
230
|
"id",
|
|
230
231
|
"size",
|
|
231
232
|
"density",
|
|
232
233
|
"class"
|
|
233
|
-
])) :
|
|
234
|
-
|
|
235
|
-
class:
|
|
234
|
+
])) : _("", !0),
|
|
235
|
+
y("div", {
|
|
236
|
+
class: C([
|
|
236
237
|
"d-select",
|
|
237
238
|
i.SELECT_SIZE_MODIFIERS[String(n.size)],
|
|
238
239
|
n.selectClass,
|
|
239
240
|
{ "d-select--disabled": n.disabled }
|
|
240
241
|
]),
|
|
241
242
|
"data-qa": "dt-select-wrapper"
|
|
242
|
-
}, [
|
|
243
|
+
}, [y("select", S({
|
|
243
244
|
ref: "selectElement",
|
|
244
245
|
class: ["d-select__input", i.SELECT_STATE_MODIFIERS[a.state]],
|
|
245
246
|
"aria-label": !n.showLabel && n.label ? n.label : void 0,
|
|
@@ -249,12 +250,12 @@ function F(e, t, n, r, i, a) {
|
|
|
249
250
|
"data-qa": "dt-select",
|
|
250
251
|
disabled: n.disabled,
|
|
251
252
|
value: n.modelValue
|
|
252
|
-
},
|
|
253
|
+
}, A(a.selectListeners, !0)), [D(e.$slots, "default", {}, () => [(T(!0), v(h, null, E(n.options, (e) => (T(), v("option", S({
|
|
253
254
|
key: a.getOptionKey(e.value),
|
|
254
255
|
value: e.value,
|
|
255
256
|
class: n.optionClass
|
|
256
|
-
}, { ref_for: !0 }, n.optionChildProps),
|
|
257
|
-
]),
|
|
257
|
+
}, { ref_for: !0 }, n.optionChildProps), k(e.label), 17, F))), 128))])], 16, P)], 2)
|
|
258
|
+
]), x(s, S(e.messagesChildProps, {
|
|
258
259
|
id: i.messagesId,
|
|
259
260
|
"validation-messages": e.formattedMessages,
|
|
260
261
|
"show-messages": e.showMessages,
|
|
@@ -267,8 +268,8 @@ function F(e, t, n, r, i, a) {
|
|
|
267
268
|
"class"
|
|
268
269
|
])], 6);
|
|
269
270
|
}
|
|
270
|
-
var
|
|
271
|
+
var L = /* @__PURE__ */ s(N, [["render", I]]);
|
|
271
272
|
//#endregion
|
|
272
|
-
export {
|
|
273
|
+
export { L as default };
|
|
273
274
|
|
|
274
275
|
//# sourceMappingURL=select-menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-menu.js","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (s) => Object.keys(SELECT_SIZE_MODIFIERS).includes(String(s)),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select-menu.js","names":[],"sources":["../../../components/SelectMenu/SelectMenu.vue"],"sourcesContent":["<template>\n <div\n :class=\"$attrs.class\"\n :style=\"$attrs.style\"\n >\n <label>\n <dt-text\n v-if=\"showLabel && (hasSlotContent($slots.label) || label)\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n as=\"div\"\n :aria-details=\"labelAriaDetails\"\n :class=\"['d-select__label-text', labelClass]\"\n v-bind=\"labelChildProps\"\n data-qa=\"dt-select-label\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"label\">{{ label }}</slot>\n </dt-text>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description\"\n :id=\"descriptionKey\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-description',\n descriptionClass,\n ]\"\n v-bind=\"descriptionChildProps\"\n data-qa=\"dt-select-description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </dt-text>\n <div\n :class=\"[\n 'd-select',\n SELECT_SIZE_MODIFIERS[String(size)],\n selectClass,\n { 'd-select--disabled': disabled },\n ]\"\n data-qa=\"dt-select-wrapper\"\n >\n <select\n ref=\"selectElement\"\n :class=\"[\n 'd-select__input',\n SELECT_STATE_MODIFIERS[state],\n ]\"\n :aria-label=\"!showLabel && label ? label : undefined\"\n :aria-invalid=\"ariaInvalid\"\n :aria-describedby=\"ariaDescribedBy\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n data-qa=\"dt-select\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-on=\"selectListeners\"\n >\n <!-- @slot Slot for select menu options, defaults to options prop -->\n <slot>\n <option\n v-for=\"option in options\"\n :key=\"getOptionKey(option.value)\"\n :value=\"option.value\"\n :class=\"optionClass\"\n v-bind=\"optionChildProps\"\n >\n {{ option.label }}\n </option>\n </slot>\n </select>\n </div>\n </label>\n <dt-validation-messages\n v-bind=\"messagesChildProps\"\n :id=\"messagesId\"\n :validation-messages=\"formattedMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n data-qa=\"dt-select-messages\"\n />\n </div>\n</template>\n\n<script>\nimport { warn } from 'vue';\nimport { ordinalSizeValidator } from '@/common/validators';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/Text';\nimport {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n} from './SelectMenuConstants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n} from '@/common/utils';\nimport { MessagesMixin } from '@/common/mixins/input';\nimport { optionsValidator } from './SelectMenuValidators.js';\nimport { DtValidationMessages } from '../ValidationMessages';\nimport { VALIDATION_MESSAGE_TYPES } from '@/common/constants';\n\n/**\n * A select menu is an input control that allows users to choose one option from a list.\n * @property {Boolean} disabled attribute\n * @property {String} name attribute\n * @property {String} value attribute\n * @see https://dialtone.dialpad.com/components/select.html\n */\nexport default {\n name: 'DtSelectMenu',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Label for the select.\n * Can also be overridden with a slot of the same name.\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of select label.\n * @values true, false\n */\n showLabel: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the select.\n * Can also be overridden with a slot of the same name.\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Select Menu Options, overridden by default slot. Each option has the following structure:\n * `{ value: number || string (required), label: string (required) }`\n * @param {Object[]} options - Optional - A list that can be used to create a list of select menu options\n * @param {number|string} options[].value - Required - The option value\n * @param {string} options[].label - Required - The option Label\n */\n options: {\n type: Array,\n default: () => [],\n validator: options => optionsValidator(options),\n },\n\n /**\n * Controls the size of the select\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(SELECT_SIZE_MODIFIERS),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the select\n */\n selectClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize each option, should options be provided via prop\n */\n optionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A set of props that are passed into the label container\n */\n labelChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into the description container\n */\n descriptionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * A set of props that are passed into each option, should options be provided via prop\n */\n optionChildProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Disabled state of the select\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The value of the select menu\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values 100, 200, 300, 400\n */\n labelSize: {\n type: [String, Number],\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(String(s)),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n },\n\n emits: [\n /**\n * Event fired to sync the modelValue prop with the parent component\n *\n * @event update:modelValue\n * @type {String | Number}\n */\n 'update:modelValue',\n\n ],\n\n data () {\n return {\n SELECT_SIZE_MODIFIERS,\n SELECT_STATE_MODIFIERS,\n hasSlotContent,\n messagesId: getUniqueString(),\n };\n },\n\n computed: {\n resolvedLabelSize () {\n if (this.labelSize != null) return this.labelSize;\n const sizeStr = String(this.size);\n // xl/500 exceeds label's max size — cap at lg/400\n if (sizeStr === 'xl' || sizeStr === '500') return sizeStr === '500' ? '400' : 'lg';\n return this.size;\n },\n\n resolvedDescriptionSize () {\n const map = {\n 100: 'xs', 200: 'xs', 300: 'sm', 400: 'sm', 500: 'md',\n xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md',\n };\n return map[String(this.size)] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n const sizeStr = String(this.size);\n return (sizeStr === 'xl' || sizeStr === '500') ? '300' : undefined;\n },\n\n selectListeners () {\n return {\n /*\n * Override input listener to as no-op. Prevents parent input listeners from being passed through onto the input\n * element which will result in the handler being called twice (once on the select element and once by the\n * emitted input event by the change listener).\n */\n input: () => {},\n change: event => this.emitValue(event.target.value, event),\n };\n },\n\n state () {\n return getValidationState(this.formattedMessages);\n },\n\n ariaInvalid () {\n return this.state === VALIDATION_MESSAGE_TYPES.CRITICAL ? 'true' : undefined;\n },\n\n ariaDescribedBy () {\n return this.showMessages && this.formattedMessages.length > 0 ? this.messagesId : undefined;\n },\n\n selectKey () {\n return getUniqueString();\n },\n\n descriptionKey () {\n return `select-${this.selectKey}-description`;\n },\n\n labelAriaDetails () {\n if (this.$slots.description || this.description) {\n return this.descriptionKey;\n }\n\n return this.$attrs['aria-details'];\n },\n },\n\n mounted () {\n this.validateOptionsPresence();\n this.runValidations();\n },\n\n beforeUpdate () {\n this.validateOptionsPresence();\n },\n\n methods: {\n removeClassStyleAttrs,\n emitValue (value, event) {\n this.$emit('update:modelValue', value, event);\n },\n\n getOptionKey (value) {\n return `select-${this.selectKey}-option-${value}`;\n },\n\n validateOptionsPresence () {\n if (this.options?.length < 1 && !this.$slots.default) {\n warn('Options are expected to be provided via prop or slot', this);\n }\n },\n\n runValidations () {\n const hasLabel = !!(this.$slots.label || this.label);\n if (!hasLabel && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use show-label=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/validators/index.cjs`),t=require(`../../common/utils/index.cjs`),n=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),r=require(`../button/button-constants.cjs`),i=require(`../dropdown/dropdown.cjs`),a=require(`./split-button-start.cjs`),o=require(`./split-button-end.cjs`);let s=require(`vue`);var c={name:`DtSplitButton`,components:{SplitButtonEnd:o.default,DtDropdown:i.default,SplitButtonStart:a.default},inheritAttrs:!1,props:{startActive:{type:Boolean,default:!1},alphaActive:{type:Boolean,default:null},startAriaLabel:{type:String,default:null},alphaAriaLabel:{type:String,default:void 0},startIconPosition:{type:String,default:`left`,validator:e=>Object.keys(r.ICON_POSITION_MODIFIERS).includes(e)},alphaIconPosition:{type:String,default:void 0,validator:e=>e===void 0||Object.keys(r.ICON_POSITION_MODIFIERS).includes(e)},startLabelClass:{type:[String,Array,Object],default:``},startLeadingClass:{type:[String,Array,Object],default:``},alphaLeadingClass:{type:[String,Array,Object],default:void 0},startTrailingClass:{type:[String,Array,Object],default:``},alphaTrailingClass:{type:[String,Array,Object],default:void 0},alphaLabelClass:{type:[String,Array,Object],default:void 0},startDisabled:{type:Boolean,default:!1},alphaDisabled:{type:Boolean,default:null},startLoading:{type:Boolean,default:!1},alphaLoading:{type:Boolean,default:null},startTooltipText:{type:String,default:void 0},alphaTooltipText:{type:String,default:void 0},assertiveOnFocus:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},dropdownPlacement:{type:String,default:`bottom-end`},importance:{type:String,default:`primary`,validator:e=>Object.keys(r.BUTTON_IMPORTANCE_MODIFIERS).includes(e)},kind:{type:String,default:`default`,validator:e=>Object.keys(r.BUTTON_KIND_MODIFIERS).includes(e)},endActive:{type:Boolean,default:!1},omegaActive:{type:Boolean,default:null},endAriaLabel:{type:String,default:null},omegaAriaLabel:{type:String,default:void 0},endDisabled:{type:Boolean,default:!1},omegaDisabled:{type:Boolean,default:null},endId:{type:String,default:void 0},omegaId:{type:String,default:void 0},endTooltipText:{type:String,default:void 0},omegaTooltipText:{type:String,default:void 0},size:{type:[String,Number],default:300,validator:e.ordinalSizeValidator(r.BUTTON_SIZE_MODIFIERS)},width:{type:String,default:null},showDivider:{type:Boolean,default:!0},startTo:{type:[String,Object],default:null},startReplace:{type:Boolean,default:!1},startHref:{type:String,default:null},startTarget:{type:String,default:null},startRel:{type:String,default:null}},emits:[`start-clicked`,`alpha-clicked`,`end-clicked`,`omega-clicked`],data(){return{isDropdownOpen:!1}},computed:{startButtonProps(){return{active:this.alphaActive??this.startActive,ariaLabel:this.alphaAriaLabel??this.startAriaLabel,assertiveOnFocus:this.assertiveOnFocus,disabled:this.disabled||(this.alphaDisabled??this.startDisabled),iconPosition:this.alphaIconPosition??this.startIconPosition,labelClass:this.alphaLabelClass??this.startLabelClass,leadingClass:this.alphaLeadingClass??this.startLeadingClass,trailingClass:this.alphaTrailingClass??this.startTrailingClass,loading:this.alphaLoading??this.startLoading,importance:this.importance,kind:this.kind,size:this.size,tooltipText:this.alphaTooltipText??this.startTooltipText,to:this.startTo,replace:this.startReplace,href:this.startHref,target:this.startTarget,rel:this.startRel,class:this.$attrs.class,style:this.$attrs.style}},endButtonProps(){return{id:this.omegaId??this.endId,active:this.omegaActive??this.endActive,ariaLabel:this.omegaAriaLabel??this.endAriaLabel,disabled:this.disabled||(this.omegaDisabled??this.endDisabled),importance:this.importance,kind:this.kind,size:this.size,tooltipText:this.omegaTooltipText??this.endTooltipText,class:this.$attrs.class,style:this.$attrs.style}}},created(){this.validateProps()},updated(){this.validateProps()},mounted(){t.warnIfUnmounted(t.returnFirstEl(this.$el),this.$options.name)},methods:{onStartClick(){this.$emit(`start-clicked`),this.$emit(`alpha-clicked`)},onEndClick(){this.$emit(`end-clicked`),this.$emit(`omega-clicked`)},validateProps(){this.validateStartButtonProps(),this.validateEndButtonProps(),this.validateShowDivider()},validateStartButtonProps(){t.hasSlotContent(this.$slots.default)||(t.hasSlotContent(this.$slots.startIcon)||t.hasSlotContent(this.$slots.alphaIcon))&&!(this.alphaTooltipText??this.startTooltipText)&&console.warn(`start-tooltip-text prop must be set if start button has an icon only`)},validateEndButtonProps(){t.hasSlotContent(this.$slots.end)||t.hasSlotContent(this.$slots.omega)||(this.omegaTooltipText??this.endTooltipText)||console.warn(`end-tooltip-text prop is required as it is an icon-only button`)},validateShowDivider(){!this.showDivider&&this.importance!==`clear`&&console.warn(`show-divider prop set to false has no effect when importance is not "clear". The divider is always shown for "outlined" and "primary" importances.`)}}};function l(e,t,n,r,i,a){let o=(0,s.resolveComponent)(`split-button-start`),c=(0,s.resolveComponent)(`split-button-end`),l=(0,s.resolveComponent)(`dt-dropdown`);return(0,s.openBlock)(),(0,s.createElementBlock)(`span`,{"data-qa":`dt-split-button`,class:(0,s.normalizeClass)([`d-split-btn`,{"d-split-btn--no-divider":!n.showDivider&&n.importance===`clear`},e.$attrs.class]),style:(0,s.normalizeStyle)([e.$attrs.style,{width:n.width}])},[(0,s.createVNode)(o,(0,s.mergeProps)(a.startButtonProps,{ref:`startButton`,onClick:a.onStartClick}),(0,s.createSlots)({default:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`default`)]),_:2},[e.$slots.startEndIcon?{name:`startIcon`,fn:(0,s.withCtx)(({size:t})=>[e.$slots.startIcon?(0,s.renderSlot)(e.$slots,`startIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`alphaIcon`,{key:1,size:t})]),key:`0`}:void 0,e.$slots.startEndIcon?{name:`endIcon`,fn:(0,s.withCtx)(({size:t})=>[(0,s.renderSlot)(e.$slots,`startEndIcon`,{size:t})]),key:`1`}:void 0,e.$slots.startEndIcon?void 0:{name:`icon`,fn:(0,s.withCtx)(({size:t})=>[e.$slots.startIcon?(0,s.renderSlot)(e.$slots,`startIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`alphaIcon`,{key:1,size:t})]),key:`2`},e.$slots.leading?{name:`leading`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`leading`)]),key:`3`}:void 0,e.$slots.trailing?{name:`trailing`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`trailing`)]),key:`4`}:void 0]),1040,[`onClick`]),e.$slots.end?(0,s.renderSlot)(e.$slots,`end`,{key:0}):e.$slots.omega?(0,s.renderSlot)(e.$slots,`omega`,{key:1}):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:2},[e.$slots.dropdownList?((0,s.openBlock)(),(0,s.createBlock)(l,{key:0,placement:n.dropdownPlacement,onClick:t[0]||(t[0]=e=>i.isDropdownOpen=!0),onOpened:t[1]||(t[1]=e=>i.isDropdownOpen=e)},{anchor:(0,s.withCtx)(t=>[(0,s.createVNode)(c,(0,s.mergeProps)({...t,...a.endButtonProps},{active:i.isDropdownOpen,onClick:a.onEndClick}),{icon:(0,s.withCtx)(({size:t})=>[e.$slots.endIcon?(0,s.renderSlot)(e.$slots,`endIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`omegaIcon`,{key:1,size:t})]),_:3},16,[`active`,`onClick`])]),list:(0,s.withCtx)(({close:t})=>[(0,s.renderSlot)(e.$slots,`dropdownList`,{close:t})]),_:3},8,[`placement`])):((0,s.openBlock)(),(0,s.createBlock)(c,(0,s.mergeProps)({key:1},a.endButtonProps,{onClick:a.onEndClick}),{icon:(0,s.withCtx)(({size:t})=>[e.$slots.endIcon?(0,s.renderSlot)(e.$slots,`endIcon`,{key:0,size:t}):(0,s.renderSlot)(e.$slots,`omegaIcon`,{key:1,size:t})]),_:3},16,[`onClick`]))],64))],6)}var u=n.t(c,[[`render`,l]]);exports.default=u;
|
|
2
2
|
//# sourceMappingURL=split-button.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-button.cjs","names":[],"sources":["../../../components/SplitButton/SplitButton.vue"],"sourcesContent":["<template>\n <span\n data-qa=\"dt-split-button\"\n :class=\"['d-split-btn', { 'd-split-btn--no-divider': !showDivider && importance === 'clear' }, $attrs.class]\"\n :style=\"[$attrs.style, { width }]\"\n >\n <split-button-start\n v-bind=\"startButtonProps\"\n ref=\"startButton\"\n @click=\"onStartClick\"\n >\n <!-- Dual-icon path: when startEndIcon is provided, use DtButton's startIcon/endIcon -->\n <template\n v-if=\"$slots.startEndIcon\"\n #startIcon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.startEndIcon\"\n #endIcon=\"{ size: iconSize }\"\n >\n <!-- @slot End-positioned icon within the start button (enables dual icons on the start button) -->\n <slot\n name=\"startEndIcon\"\n :size=\"iconSize\"\n />\n </template>\n <!-- Legacy single-icon path: uses DtButton's icon slot with iconPosition -->\n <template\n v-if=\"!$slots.startEndIcon\"\n #icon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.leading\"\n #leading\n >\n <!-- @slot Leading slot, forwarded to the alpha button's leading slot -->\n <slot name=\"leading\" />\n </template>\n <template\n v-if=\"$slots.trailing\"\n #trailing\n >\n <!-- @slot Trailing slot, forwarded to the alpha button's trailing slot -->\n <slot name=\"trailing\" />\n </template>\n <!-- @slot Default content slot -->\n <slot name=\"default\" />\n </split-button-start>\n <!-- @slot End (right) content slot, overrides end button styling and functionality completely -->\n <template v-if=\"$slots.end\">\n <slot name=\"end\" />\n </template>\n <!-- @slot @deprecated Use end -->\n <template v-else-if=\"$slots.omega\">\n <slot name=\"omega\" />\n </template>\n <template v-else>\n <dt-dropdown\n v-if=\"$slots.dropdownList\"\n :placement=\"dropdownPlacement\"\n @click=\"isDropdownOpen = true\"\n @opened=\"open => isDropdownOpen = open\"\n >\n <template #anchor=\"attrs\">\n <split-button-end\n v-bind=\"{ ...attrs, ...endButtonProps }\"\n :active=\"isDropdownOpen\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n <template #list=\"{ close }\">\n <!-- @slot Built-in dropdown content slot, use of dt-list-item is highly recommended here. -->\n <slot\n name=\"dropdownList\"\n :close=\"close\"\n />\n </template>\n </dt-dropdown>\n\n <split-button-end\n v-else\n v-bind=\"endButtonProps\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n </span>\n</template>\n\n<script>\nimport {\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_SIZE_MODIFIERS,\n ICON_POSITION_MODIFIERS,\n} from '@/components/Button';\nimport SplitButtonStart from './SplitButtonStart.vue';\nimport SplitButtonEnd from './SplitButtonEnd.vue';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { hasSlotContent, warnIfUnmounted, returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtSplitButton',\n\n components: {\n SplitButtonEnd,\n DtDropdown,\n SplitButtonStart,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the start button should have active styling\n * @values true, false\n */\n startActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startActive\n * @values true, false\n */\n alphaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the start button\n */\n startAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use startAriaLabel\n */\n alphaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * The position of the icon slot within the start button.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n startIconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * @deprecated Use startIconPosition\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n alphaIconPosition: {\n type: String,\n default: undefined,\n validator: (position) => position === undefined || Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * Used to customize the start label container\n */\n startLabelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start button leading container\n */\n startLeadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startLeadingClass\n */\n alphaLeadingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Used to customize the start button trailing container\n */\n startTrailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startTrailingClass\n */\n alphaTrailingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * @deprecated Use startLabelClass\n */\n alphaLabelClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for start button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n startDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startDisabled\n * @values true, false\n */\n alphaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Whether the start button should display a loading animation or not.\n * @values true, false\n */\n startLoading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startLoading\n * @values true, false\n */\n alphaLoading: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use startTooltipText\n */\n alphaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute for both buttons.\n * Use startDisabled or endDisabled to disable buttons individually.\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n dropdownPlacement: {\n type: String,\n default: 'bottom-end',\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * The color of the button.\n * @values default, unstyled, muted, critical, positive\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether the end button should have active styling\n * @values true, false\n */\n endActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endActive\n * @values true, false\n */\n omegaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the end button\n */\n endAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use endAriaLabel\n */\n omegaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for end button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n endDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endDisabled\n * @values true, false\n */\n omegaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover.\n */\n endId: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endId\n */\n omegaId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endTooltipText\n */\n omegaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (s) => Object.keys(BUTTON_SIZE_MODIFIERS).includes(String(s)),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n\n /**\n * Whether to show the vertical divider between the start and end buttons.\n * Only applies when importance is \"clear\".\n * @values true, false\n */\n showDivider: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Vue router `to` prop for the start button.\n * When set, renders the start button as a `<router-link>`.\n */\n startTo: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * Whether to use `router.replace()` instead of `router.push()`\n * when navigating via `startTo`.\n * @values true, false\n */\n startReplace: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML href for the start button.\n * When set, renders the start button as an `<a>` element.\n */\n startHref: {\n type: String,\n default: null,\n },\n\n /**\n * HTML target attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startTarget: {\n type: String,\n default: null,\n },\n\n /**\n * HTML rel attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startRel: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Native start button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'start-clicked',\n\n /**\n * @deprecated Use start-clicked\n */\n 'alpha-clicked',\n\n /**\n * Native end button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'end-clicked',\n\n /**\n * @deprecated Use end-clicked\n */\n 'omega-clicked',\n ],\n\n data () {\n return {\n isDropdownOpen: false,\n };\n },\n\n computed: {\n startButtonProps () {\n return {\n active: this.alphaActive ?? this.startActive,\n ariaLabel: this.alphaAriaLabel ?? this.startAriaLabel,\n assertiveOnFocus: this.assertiveOnFocus,\n disabled: this.disabled || (this.alphaDisabled ?? this.startDisabled),\n iconPosition: this.alphaIconPosition ?? this.startIconPosition,\n labelClass: this.alphaLabelClass ?? this.startLabelClass,\n leadingClass: this.alphaLeadingClass ?? this.startLeadingClass,\n trailingClass: this.alphaTrailingClass ?? this.startTrailingClass,\n loading: this.alphaLoading ?? this.startLoading,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.alphaTooltipText ?? this.startTooltipText,\n to: this.startTo,\n replace: this.startReplace,\n href: this.startHref,\n target: this.startTarget,\n rel: this.startRel,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n\n endButtonProps () {\n return {\n id: this.omegaId ?? this.endId,\n active: this.omegaActive ?? this.endActive,\n ariaLabel: this.omegaAriaLabel ?? this.endAriaLabel,\n disabled: this.disabled || (this.omegaDisabled ?? this.endDisabled),\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.omegaTooltipText ?? this.endTooltipText,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n },\n\n created () {\n this.validateProps();\n },\n\n updated () {\n this.validateProps();\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n onStartClick () {\n this.$emit('start-clicked');\n this.$emit('alpha-clicked');\n },\n\n onEndClick () {\n this.$emit('end-clicked');\n this.$emit('omega-clicked');\n },\n\n validateProps () {\n this.validateStartButtonProps();\n this.validateEndButtonProps();\n this.validateShowDivider();\n },\n\n validateStartButtonProps () {\n if (hasSlotContent(this.$slots.default)) return;\n\n if ((hasSlotContent(this.$slots.startIcon) || hasSlotContent(this.$slots.alphaIcon)) &&\n !(this.alphaTooltipText ?? this.startTooltipText)) {\n console.warn('start-tooltip-text prop must be set if start button has an icon only');\n }\n },\n\n validateEndButtonProps () {\n if (hasSlotContent(this.$slots.end) || hasSlotContent(this.$slots.omega)) return;\n\n if (!(this.omegaTooltipText ?? this.endTooltipText)) {\n console.warn('end-tooltip-text prop is required as it is an icon-only button');\n }\n },\n\n validateShowDivider () {\n if (!this.showDivider && this.importance !== 'clear') {\n console.warn(\n 'show-divider prop set to false has no effect when importance is not \"clear\". ' +\n 'The divider is always shown for \"outlined\" and \"primary\" importances.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"split-button.cjs","names":[],"sources":["../../../components/SplitButton/SplitButton.vue"],"sourcesContent":["<template>\n <span\n data-qa=\"dt-split-button\"\n :class=\"['d-split-btn', { 'd-split-btn--no-divider': !showDivider && importance === 'clear' }, $attrs.class]\"\n :style=\"[$attrs.style, { width }]\"\n >\n <split-button-start\n v-bind=\"startButtonProps\"\n ref=\"startButton\"\n @click=\"onStartClick\"\n >\n <!-- Dual-icon path: when startEndIcon is provided, use DtButton's startIcon/endIcon -->\n <template\n v-if=\"$slots.startEndIcon\"\n #startIcon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.startEndIcon\"\n #endIcon=\"{ size: iconSize }\"\n >\n <!-- @slot End-positioned icon within the start button (enables dual icons on the start button) -->\n <slot\n name=\"startEndIcon\"\n :size=\"iconSize\"\n />\n </template>\n <!-- Legacy single-icon path: uses DtButton's icon slot with iconPosition -->\n <template\n v-if=\"!$slots.startEndIcon\"\n #icon=\"{ size: iconSize }\"\n >\n <!-- @slot Start (left) button icon slot -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <template\n v-if=\"$slots.leading\"\n #leading\n >\n <!-- @slot Leading slot, forwarded to the alpha button's leading slot -->\n <slot name=\"leading\" />\n </template>\n <template\n v-if=\"$slots.trailing\"\n #trailing\n >\n <!-- @slot Trailing slot, forwarded to the alpha button's trailing slot -->\n <slot name=\"trailing\" />\n </template>\n <!-- @slot Default content slot -->\n <slot name=\"default\" />\n </split-button-start>\n <!-- @slot End (right) content slot, overrides end button styling and functionality completely -->\n <template v-if=\"$slots.end\">\n <slot name=\"end\" />\n </template>\n <!-- @slot @deprecated Use end -->\n <template v-else-if=\"$slots.omega\">\n <slot name=\"omega\" />\n </template>\n <template v-else>\n <dt-dropdown\n v-if=\"$slots.dropdownList\"\n :placement=\"dropdownPlacement\"\n @click=\"isDropdownOpen = true\"\n @opened=\"open => isDropdownOpen = open\"\n >\n <template #anchor=\"attrs\">\n <split-button-end\n v-bind=\"{ ...attrs, ...endButtonProps }\"\n :active=\"isDropdownOpen\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n <template #list=\"{ close }\">\n <!-- @slot Built-in dropdown content slot, use of dt-list-item is highly recommended here. -->\n <slot\n name=\"dropdownList\"\n :close=\"close\"\n />\n </template>\n </dt-dropdown>\n\n <split-button-end\n v-else\n v-bind=\"endButtonProps\"\n @click=\"onEndClick\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot End (right) button icon slot -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :size=\"iconSize\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-end>\n </template>\n </span>\n</template>\n\n<script>\nimport {\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_SIZE_MODIFIERS,\n ICON_POSITION_MODIFIERS,\n} from '@/components/Button';\nimport SplitButtonStart from './SplitButtonStart.vue';\nimport SplitButtonEnd from './SplitButtonEnd.vue';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { hasSlotContent, warnIfUnmounted, returnFirstEl } from '@/common/utils';\nimport { ordinalSizeValidator } from '@/common/validators';\n\nexport default {\n name: 'DtSplitButton',\n\n components: {\n SplitButtonEnd,\n DtDropdown,\n SplitButtonStart,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the start button should have active styling\n * @values true, false\n */\n startActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startActive\n * @values true, false\n */\n alphaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the start button\n */\n startAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use startAriaLabel\n */\n alphaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * The position of the icon slot within the start button.\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n startIconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * @deprecated Use startIconPosition\n * @values start, end, blockStart, blockEnd, left, right, top, bottom\n */\n alphaIconPosition: {\n type: String,\n default: undefined,\n validator: (position) => position === undefined || Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * Used to customize the start label container\n */\n startLabelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the start button leading container\n */\n startLeadingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startLeadingClass\n */\n alphaLeadingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * Used to customize the start button trailing container\n */\n startTrailingClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * @deprecated Use startTrailingClass\n */\n alphaTrailingClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * @deprecated Use startLabelClass\n */\n alphaLabelClass: {\n type: [String, Array, Object],\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for start button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n startDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startDisabled\n * @values true, false\n */\n alphaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Whether the start button should display a loading animation or not.\n * @values true, false\n */\n startLoading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use startLoading\n * @values true, false\n */\n alphaLoading: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use startTooltipText\n */\n alphaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute for both buttons.\n * Use startDisabled or endDisabled to disable buttons individually.\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n dropdownPlacement: {\n type: String,\n default: 'bottom-end',\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * The color of the button.\n * @values default, unstyled, muted, critical, positive\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether the end button should have active styling\n * @values true, false\n */\n endActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endActive\n * @values true, false\n */\n omegaActive: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Descriptive label for the end button\n */\n endAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * @deprecated Use endAriaLabel\n */\n omegaAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * HTML button disabled attribute for end button only\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n endDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use endDisabled\n * @values true, false\n */\n omegaDisabled: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover.\n */\n endId: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endId\n */\n omegaId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * @deprecated Use endTooltipText\n */\n omegaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(BUTTON_SIZE_MODIFIERS),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n\n /**\n * Whether to show the vertical divider between the start and end buttons.\n * Only applies when importance is \"clear\".\n * @values true, false\n */\n showDivider: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Vue router `to` prop for the start button.\n * When set, renders the start button as a `<router-link>`.\n */\n startTo: {\n type: [String, Object],\n default: null,\n },\n\n /**\n * Whether to use `router.replace()` instead of `router.push()`\n * when navigating via `startTo`.\n * @values true, false\n */\n startReplace: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML href for the start button.\n * When set, renders the start button as an `<a>` element.\n */\n startHref: {\n type: String,\n default: null,\n },\n\n /**\n * HTML target attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startTarget: {\n type: String,\n default: null,\n },\n\n /**\n * HTML rel attribute for the start button link.\n * Only applies when `startHref` is set.\n */\n startRel: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Native start button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'start-clicked',\n\n /**\n * @deprecated Use start-clicked\n */\n 'alpha-clicked',\n\n /**\n * Native end button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'end-clicked',\n\n /**\n * @deprecated Use end-clicked\n */\n 'omega-clicked',\n ],\n\n data () {\n return {\n isDropdownOpen: false,\n };\n },\n\n computed: {\n startButtonProps () {\n return {\n active: this.alphaActive ?? this.startActive,\n ariaLabel: this.alphaAriaLabel ?? this.startAriaLabel,\n assertiveOnFocus: this.assertiveOnFocus,\n disabled: this.disabled || (this.alphaDisabled ?? this.startDisabled),\n iconPosition: this.alphaIconPosition ?? this.startIconPosition,\n labelClass: this.alphaLabelClass ?? this.startLabelClass,\n leadingClass: this.alphaLeadingClass ?? this.startLeadingClass,\n trailingClass: this.alphaTrailingClass ?? this.startTrailingClass,\n loading: this.alphaLoading ?? this.startLoading,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.alphaTooltipText ?? this.startTooltipText,\n to: this.startTo,\n replace: this.startReplace,\n href: this.startHref,\n target: this.startTarget,\n rel: this.startRel,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n\n endButtonProps () {\n return {\n id: this.omegaId ?? this.endId,\n active: this.omegaActive ?? this.endActive,\n ariaLabel: this.omegaAriaLabel ?? this.endAriaLabel,\n disabled: this.disabled || (this.omegaDisabled ?? this.endDisabled),\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.omegaTooltipText ?? this.endTooltipText,\n class: this.$attrs.class,\n style: this.$attrs.style,\n };\n },\n },\n\n created () {\n this.validateProps();\n },\n\n updated () {\n this.validateProps();\n },\n\n mounted () {\n warnIfUnmounted(returnFirstEl(this.$el), this.$options.name);\n },\n\n methods: {\n onStartClick () {\n this.$emit('start-clicked');\n this.$emit('alpha-clicked');\n },\n\n onEndClick () {\n this.$emit('end-clicked');\n this.$emit('omega-clicked');\n },\n\n validateProps () {\n this.validateStartButtonProps();\n this.validateEndButtonProps();\n this.validateShowDivider();\n },\n\n validateStartButtonProps () {\n if (hasSlotContent(this.$slots.default)) return;\n\n if ((hasSlotContent(this.$slots.startIcon) || hasSlotContent(this.$slots.alphaIcon)) &&\n !(this.alphaTooltipText ?? this.startTooltipText)) {\n console.warn('start-tooltip-text prop must be set if start button has an icon only');\n }\n },\n\n validateEndButtonProps () {\n if (hasSlotContent(this.$slots.end) || hasSlotContent(this.$slots.omega)) return;\n\n if (!(this.omegaTooltipText ?? this.endTooltipText)) {\n console.warn('end-tooltip-text prop is required as it is an icon-only button');\n }\n },\n\n validateShowDivider () {\n if (!this.showDivider && this.importance !== 'clear') {\n console.warn(\n 'show-divider prop set to false has no effect when importance is not \"clear\". ' +\n 'The divider is always shown for \"outlined\" and \"primary\" importances.',\n );\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
|