@dialpad/dialtone-vue 3.218.3 → 3.219.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/constants/index.cjs +1 -1
- package/dist/common/constants/index.cjs.map +1 -1
- package/dist/common/constants/index.js +37 -20
- package/dist/common/constants/index.js.map +1 -1
- package/dist/common/constants/sizes.cjs +2 -0
- package/dist/common/constants/sizes.cjs.map +1 -0
- package/dist/common/constants/sizes.js +20 -0
- package/dist/common/constants/sizes.js.map +1 -0
- package/dist/common/mixins/index.cjs +1 -1
- package/dist/common/mixins/index.js +9 -7
- package/dist/common/mixins/index.js.map +1 -1
- package/dist/common/mixins/mode.cjs +2 -0
- package/dist/common/mixins/mode.cjs.map +1 -0
- package/dist/common/mixins/mode.js +82 -0
- package/dist/common/mixins/mode.js.map +1 -0
- package/dist/component-documentation.json +1 -1
- package/dist/dialtone-vue.cjs +1 -1
- package/dist/dialtone-vue.js +464 -408
- package/dist/dialtone-vue.js.map +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.js +8 -8
- package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
- package/dist/lib/avatar/avatar-constants.cjs +1 -1
- package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
- package/dist/lib/avatar/avatar-constants.js +169 -43
- package/dist/lib/avatar/avatar-constants.js.map +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 +186 -100
- package/dist/lib/avatar/avatar.js.map +1 -1
- package/dist/lib/avatar/index.cjs +1 -1
- package/dist/lib/avatar/index.js +16 -10
- package/dist/lib/badge/badge.cjs +1 -1
- package/dist/lib/badge/badge.cjs.map +1 -1
- package/dist/lib/badge/badge.js +47 -35
- package/dist/lib/badge/badge.js.map +1 -1
- package/dist/lib/banner/banner.cjs +1 -1
- package/dist/lib/banner/banner.cjs.map +1 -1
- package/dist/lib/banner/banner.js +19 -18
- package/dist/lib/banner/banner.js.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
- package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumb-item.js +4 -1
- package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
- package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
- package/dist/lib/breadcrumbs/breadcrumbs.js +22 -18
- package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/lib/button/button-constants.cjs +1 -1
- package/dist/lib/button/button-constants.cjs.map +1 -1
- package/dist/lib/button/button-constants.js +33 -15
- package/dist/lib/button/button-constants.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 +195 -78
- package/dist/lib/button/button.js.map +1 -1
- package/dist/lib/button-group/button-group.cjs.map +1 -1
- package/dist/lib/button-group/button-group.js +1 -0
- package/dist/lib/button-group/button-group.js.map +1 -1
- package/dist/lib/callbar-button/callbar-button.cjs +1 -1
- package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
- package/dist/lib/callbar-button/callbar-button.js +14 -15
- package/dist/lib/callbar-button/callbar-button.js.map +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +44 -32
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +40 -28
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
- package/dist/lib/callbox/callbox.cjs +1 -1
- package/dist/lib/callbox/callbox.cjs.map +1 -1
- package/dist/lib/callbox/callbox.js +48 -48
- package/dist/lib/callbox/callbox.js.map +1 -1
- package/dist/lib/checkbox/checkbox.cjs +1 -1
- package/dist/lib/checkbox/checkbox.cjs.map +1 -1
- package/dist/lib/checkbox/checkbox.js +97 -43
- package/dist/lib/checkbox/checkbox.js.map +1 -1
- package/dist/lib/chip/chip-constants.cjs +1 -1
- package/dist/lib/chip/chip-constants.cjs.map +1 -1
- package/dist/lib/chip/chip-constants.js +17 -2
- package/dist/lib/chip/chip-constants.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 +17 -17
- package/dist/lib/chip/chip.js.map +1 -1
- package/dist/lib/codeblock/codeblock-constants.cjs +2 -0
- package/dist/lib/codeblock/codeblock-constants.cjs.map +1 -0
- package/dist/lib/codeblock/codeblock-constants.js +12 -0
- package/dist/lib/codeblock/codeblock-constants.js.map +1 -0
- package/dist/lib/codeblock/codeblock.cjs +1 -2
- package/dist/lib/codeblock/codeblock.cjs.map +1 -1
- package/dist/lib/codeblock/codeblock.js +38 -12
- package/dist/lib/codeblock/codeblock.js.map +1 -1
- package/dist/lib/collapsible/collapsible.cjs +1 -1
- package/dist/lib/collapsible/collapsible.cjs.map +1 -1
- package/dist/lib/collapsible/collapsible.js +1 -1
- package/dist/lib/collapsible/collapsible.js.map +1 -1
- package/dist/lib/combobox/combobox.cjs +2 -2
- package/dist/lib/combobox/combobox.cjs.map +1 -1
- package/dist/lib/combobox/combobox.js +22 -21
- package/dist/lib/combobox/combobox.js.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +16 -6
- package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +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 +48 -46
- 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 +37 -29
- package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.js +36 -36
- package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
- package/dist/lib/contact-info/contact-info.cjs +1 -1
- package/dist/lib/contact-info/contact-info.cjs.map +1 -1
- package/dist/lib/contact-info/contact-info.js +56 -56
- package/dist/lib/contact-info/contact-info.js.map +1 -1
- package/dist/lib/contact-row/contact-row.cjs +1 -1
- package/dist/lib/contact-row/contact-row.cjs.map +1 -1
- package/dist/lib/contact-row/contact-row.js +3 -3
- package/dist/lib/contact-row/contact-row.js.map +1 -1
- package/dist/lib/datepicker/datepicker.cjs +1 -1
- package/dist/lib/datepicker/datepicker.cjs.map +1 -1
- package/dist/lib/datepicker/datepicker.js +93 -95
- package/dist/lib/datepicker/datepicker.js.map +1 -1
- package/dist/lib/description-list/description-list.cjs +1 -1
- package/dist/lib/description-list/description-list.cjs.map +1 -1
- package/dist/lib/description-list/description-list.js +2 -2
- package/dist/lib/description-list/description-list.js.map +1 -1
- package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
- package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown-constants.js +2 -2
- package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
- package/dist/lib/dropdown/dropdown-list.cjs +1 -1
- package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown-list.js +29 -18
- package/dist/lib/dropdown/dropdown-list.js.map +1 -1
- package/dist/lib/dropdown/dropdown.cjs +1 -1
- package/dist/lib/dropdown/dropdown.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown.js +27 -19
- package/dist/lib/dropdown/dropdown.js.map +1 -1
- package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
- package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
- package/dist/lib/editor/EditorToolbarButton.js +6 -6
- package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
- package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
- package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
- package/dist/lib/editor/EditorToolbarDropdownButton.js +3 -3
- package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
- package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
- package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
- package/dist/lib/editor/EditorToolbarPopoverButton.js +3 -3
- package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
- package/dist/lib/editor/editor.cjs +1 -1
- package/dist/lib/editor/editor.cjs.map +1 -1
- package/dist/lib/editor/editor.js +48 -48
- package/dist/lib/editor/editor.js.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
- package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker.js +62 -59
- package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
- package/dist/lib/emoji-row/emoji-row.cjs +1 -1
- package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
- package/dist/lib/emoji-row/emoji-row.js +10 -10
- package/dist/lib/emoji-row/emoji-row.js.map +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 +2 -1
- package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
- package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
- package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
- package/dist/lib/empty-state/empty-state-constants.js +54 -12
- package/dist/lib/empty-state/empty-state-constants.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 +60 -36
- package/dist/lib/empty-state/empty-state.js.map +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
- package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
- package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row.js +12 -12
- package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
- package/dist/lib/filter-pill/filter-pill.cjs +2 -0
- package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
- package/dist/lib/filter-pill/filter-pill.js +569 -0
- package/dist/lib/filter-pill/filter-pill.js.map +1 -0
- package/dist/lib/filter-pill/index.cjs +2 -0
- package/dist/lib/filter-pill/index.cjs.map +1 -0
- package/dist/lib/filter-pill/index.js +5 -0
- package/dist/lib/filter-pill/index.js.map +1 -0
- package/dist/lib/general-row/general-row.cjs +1 -1
- package/dist/lib/general-row/general-row.cjs.map +1 -1
- package/dist/lib/general-row/general-row.js +154 -100
- package/dist/lib/general-row/general-row.js.map +1 -1
- package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
- package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
- package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
- package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
- package/dist/lib/group-row/group-row.cjs +1 -1
- package/dist/lib/group-row/group-row.cjs.map +1 -1
- package/dist/lib/group-row/group-row.js +2 -2
- package/dist/lib/group-row/group-row.js.map +1 -1
- package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
- package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
- package/dist/lib/grouped-chip/grouped-chip.js +33 -33
- package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
- package/dist/lib/hovercard/hovercard.cjs +1 -1
- package/dist/lib/hovercard/hovercard.cjs.map +1 -1
- package/dist/lib/hovercard/hovercard.js +37 -28
- package/dist/lib/hovercard/hovercard.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 +1 -1
- package/dist/lib/icon/icon.js.map +1 -1
- package/dist/lib/illustration/illustration.cjs +1 -1
- package/dist/lib/illustration/illustration.cjs.map +1 -1
- package/dist/lib/illustration/illustration.js +1 -1
- package/dist/lib/illustration/illustration.js.map +1 -1
- package/dist/lib/image-viewer/image-viewer.cjs +1 -1
- package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
- package/dist/lib/image-viewer/image-viewer.js +28 -27
- package/dist/lib/image-viewer/image-viewer.js.map +1 -1
- package/dist/lib/input/input-constants.cjs +1 -1
- package/dist/lib/input/input-constants.cjs.map +1 -1
- package/dist/lib/input/input-constants.js +43 -22
- package/dist/lib/input/input-constants.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 +165 -79
- package/dist/lib/input/input.js.map +1 -1
- package/dist/lib/input-group/input-group.cjs +1 -1
- package/dist/lib/input-group/input-group.cjs.map +1 -1
- package/dist/lib/input-group/input-group.js +35 -28
- package/dist/lib/input-group/input-group.js.map +1 -1
- package/dist/lib/item-layout/item-layout.cjs +3 -3
- package/dist/lib/item-layout/item-layout.cjs.map +1 -1
- package/dist/lib/item-layout/item-layout.js +74 -39
- package/dist/lib/item-layout/item-layout.js.map +1 -1
- package/dist/lib/ivr-node/ivr-node.cjs +1 -1
- package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
- package/dist/lib/ivr-node/ivr-node.js +1 -1
- package/dist/lib/ivr-node/ivr-node.js.map +1 -1
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +57 -43
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
- package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
- package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
- package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
- package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
- package/dist/lib/link/link.cjs +1 -1
- package/dist/lib/link/link.cjs.map +1 -1
- package/dist/lib/link/link.js +22 -12
- package/dist/lib/link/link.js.map +1 -1
- package/dist/lib/list-item/list-item.cjs +1 -1
- package/dist/lib/list-item/list-item.cjs.map +1 -1
- package/dist/lib/list-item/list-item.js +27 -16
- package/dist/lib/list-item/list-item.js.map +1 -1
- package/dist/lib/message-input/message-input-button.cjs +1 -1
- package/dist/lib/message-input/message-input-button.cjs.map +1 -1
- package/dist/lib/message-input/message-input-button.js +4 -4
- package/dist/lib/message-input/message-input-button.js.map +1 -1
- package/dist/lib/message-input/message-input-link.cjs +1 -1
- package/dist/lib/message-input/message-input-link.cjs.map +1 -1
- package/dist/lib/message-input/message-input-link.js +12 -12
- package/dist/lib/message-input/message-input-link.js.map +1 -1
- package/dist/lib/message-input/message-input-topbar.cjs +1 -1
- package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
- package/dist/lib/message-input/message-input-topbar.js +2 -2
- package/dist/lib/message-input/message-input-topbar.js.map +1 -1
- package/dist/lib/message-input/message-input.cjs +1 -1
- package/dist/lib/message-input/message-input.cjs.map +1 -1
- package/dist/lib/message-input/message-input.js +52 -52
- package/dist/lib/message-input/message-input.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 +120 -106
- package/dist/lib/modal/modal.js.map +1 -1
- package/dist/lib/mode-directive/index.cjs +2 -0
- package/dist/lib/mode-directive/index.cjs.map +1 -0
- package/dist/lib/mode-directive/index.js +5 -0
- package/dist/lib/mode-directive/index.js.map +1 -0
- package/dist/lib/mode-directive/mode.cjs +2 -0
- package/dist/lib/mode-directive/mode.cjs.map +1 -0
- package/dist/lib/mode-directive/mode.js +75 -0
- package/dist/lib/mode-directive/mode.js.map +1 -0
- package/dist/lib/mode-island/index.cjs +2 -0
- package/dist/lib/mode-island/index.cjs.map +1 -0
- package/dist/lib/mode-island/index.js +7 -0
- package/dist/lib/mode-island/index.js.map +1 -0
- package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
- package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
- package/dist/lib/mode-island/mode-island-constants.js +12 -0
- package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
- package/dist/lib/mode-island/mode-island.cjs +2 -0
- package/dist/lib/mode-island/mode-island.cjs.map +1 -0
- package/dist/lib/mode-island/mode-island.js +130 -0
- package/dist/lib/mode-island/mode-island.js.map +1 -0
- package/dist/lib/mode-island/utils.cjs +2 -0
- package/dist/lib/mode-island/utils.cjs.map +1 -0
- package/dist/lib/mode-island/utils.js +32 -0
- package/dist/lib/mode-island/utils.js.map +1 -0
- package/dist/lib/mode-island/validators.cjs +2 -0
- package/dist/lib/mode-island/validators.cjs.map +1 -0
- package/dist/lib/mode-island/validators.js +12 -0
- package/dist/lib/mode-island/validators.js.map +1 -0
- package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
- package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
- package/dist/lib/motion-text/motion-text-constants.js +18 -8
- package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
- package/dist/lib/motion-text/motion-text.cjs +1 -1
- package/dist/lib/motion-text/motion-text.cjs.map +1 -1
- package/dist/lib/motion-text/motion-text.js +17 -17
- package/dist/lib/motion-text/motion-text.js.map +1 -1
- package/dist/lib/notice/notice-action.cjs +1 -1
- package/dist/lib/notice/notice-action.cjs.map +1 -1
- package/dist/lib/notice/notice-action.js +9 -9
- package/dist/lib/notice/notice-action.js.map +1 -1
- package/dist/lib/notice/notice-content.cjs +1 -1
- package/dist/lib/notice/notice-content.cjs.map +1 -1
- package/dist/lib/notice/notice-content.js +38 -21
- package/dist/lib/notice/notice-content.js.map +1 -1
- package/dist/lib/notice/notice-icon.cjs +1 -1
- package/dist/lib/notice/notice-icon.cjs.map +1 -1
- package/dist/lib/notice/notice-icon.js +1 -1
- package/dist/lib/notice/notice-icon.js.map +1 -1
- package/dist/lib/notice/notice.cjs +1 -1
- package/dist/lib/notice/notice.cjs.map +1 -1
- package/dist/lib/notice/notice.js +20 -19
- package/dist/lib/notice/notice.js.map +1 -1
- package/dist/lib/pagination/pagination.cjs +1 -1
- package/dist/lib/pagination/pagination.cjs.map +1 -1
- package/dist/lib/pagination/pagination.js +16 -15
- package/dist/lib/pagination/pagination.js.map +1 -1
- package/dist/lib/popover/popover-constants.cjs +1 -1
- package/dist/lib/popover/popover-constants.cjs.map +1 -1
- package/dist/lib/popover/popover-constants.js +16 -16
- package/dist/lib/popover/popover-constants.js.map +1 -1
- package/dist/lib/popover/popover-header-footer.cjs +1 -1
- package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
- package/dist/lib/popover/popover-header-footer.js +19 -12
- package/dist/lib/popover/popover-header-footer.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 +80 -62
- package/dist/lib/popover/popover.js.map +1 -1
- package/dist/lib/radio/radio.cjs +1 -1
- package/dist/lib/radio/radio.cjs.map +1 -1
- package/dist/lib/radio/radio.js +103 -41
- package/dist/lib/radio/radio.js.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.cjs +3 -3
- package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +637 -590
- package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
- package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
- package/dist/lib/root-layout/root-layout-constants.js +4 -2
- package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
- package/dist/lib/root-layout/root-layout.cjs +1 -1
- package/dist/lib/root-layout/root-layout.cjs.map +1 -1
- package/dist/lib/root-layout/root-layout.js +15 -13
- package/dist/lib/root-layout/root-layout.js.map +1 -1
- package/dist/lib/segmented-control/index.cjs +2 -0
- package/dist/lib/segmented-control/index.cjs.map +1 -0
- package/dist/lib/segmented-control/index.js +20 -0
- package/dist/lib/segmented-control/index.js.map +1 -0
- package/dist/lib/segmented-control/segmented-control-constants.cjs +2 -0
- package/dist/lib/segmented-control/segmented-control-constants.cjs.map +1 -0
- package/dist/lib/segmented-control/segmented-control-constants.js +45 -0
- package/dist/lib/segmented-control/segmented-control-constants.js.map +1 -0
- package/dist/lib/segmented-control/segmented-control-item.cjs +2 -0
- package/dist/lib/segmented-control/segmented-control-item.cjs.map +1 -0
- package/dist/lib/segmented-control/segmented-control-item.js +124 -0
- package/dist/lib/segmented-control/segmented-control-item.js.map +1 -0
- package/dist/lib/segmented-control/segmented-control.cjs +2 -0
- package/dist/lib/segmented-control/segmented-control.cjs.map +1 -0
- package/dist/lib/segmented-control/segmented-control.js +236 -0
- package/dist/lib/segmented-control/segmented-control.js.map +1 -0
- package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
- package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
- package/dist/lib/select-menu/select-menu-constants.js +13 -6
- package/dist/lib/select-menu/select-menu-constants.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 +133 -67
- package/dist/lib/select-menu/select-menu.js.map +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.js +20 -20
- package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
- package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
- package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-constants.js +26 -14
- package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
- package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
- package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-list-item.js +3 -3
- package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
- package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
- package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
- package/dist/lib/skeleton/skeleton-shape.js +11 -11
- package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
- package/dist/lib/split-button/split-button-constants.cjs +1 -1
- package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
- package/dist/lib/split-button/split-button-constants.js +7 -0
- package/dist/lib/split-button/split-button-constants.js.map +1 -1
- package/dist/lib/split-button/split-button-end.cjs +2 -0
- package/dist/lib/split-button/split-button-end.cjs.map +1 -0
- package/dist/lib/split-button/{split-button-omega.js → split-button-end.js} +16 -16
- package/dist/lib/split-button/split-button-end.js.map +1 -0
- package/dist/lib/split-button/split-button-start.cjs +2 -0
- package/dist/lib/split-button/split-button-start.cjs.map +1 -0
- package/dist/lib/split-button/split-button-start.js +231 -0
- package/dist/lib/split-button/split-button-start.js.map +1 -0
- 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 +337 -101
- package/dist/lib/split-button/split-button.js.map +1 -1
- package/dist/lib/stack/stack-constants.cjs +1 -1
- package/dist/lib/stack/stack-constants.cjs.map +1 -1
- package/dist/lib/stack/stack-constants.js +1 -1
- package/dist/lib/stack/stack-constants.js.map +1 -1
- package/dist/lib/stack/stack.cjs.map +1 -1
- package/dist/lib/stack/stack.js +5 -3
- package/dist/lib/stack/stack.js.map +1 -1
- package/dist/lib/tab/index.cjs +1 -1
- package/dist/lib/tab/index.js +14 -11
- 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 +171 -56
- package/dist/lib/tab/tab-group.js.map +1 -1
- package/dist/lib/tab/tab.cjs +1 -1
- package/dist/lib/tab/tab.cjs.map +1 -1
- package/dist/lib/tab/tab.js +105 -31
- package/dist/lib/tab/tab.js.map +1 -1
- package/dist/lib/tab/tabs-constants.cjs +1 -1
- package/dist/lib/tab/tabs-constants.cjs.map +1 -1
- package/dist/lib/tab/tabs-constants.js +31 -10
- package/dist/lib/tab/tabs-constants.js.map +1 -1
- package/dist/lib/text/index.cjs +2 -0
- package/dist/lib/text/index.cjs.map +1 -0
- package/dist/lib/text/index.js +20 -0
- package/dist/lib/text/index.js.map +1 -0
- package/dist/lib/text/text-constants.cjs +2 -0
- package/dist/lib/text/text-constants.cjs.map +1 -0
- package/dist/lib/text/text-constants.js +78 -0
- package/dist/lib/text/text-constants.js.map +1 -0
- package/dist/lib/text/text-tone-tokens.cjs +2 -0
- package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
- package/dist/lib/text/text-tone-tokens.js +33 -0
- package/dist/lib/text/text-tone-tokens.js.map +1 -0
- package/dist/lib/text/text.cjs +2 -0
- package/dist/lib/text/text.cjs.map +1 -0
- package/dist/lib/text/text.js +206 -0
- package/dist/lib/text/text.js.map +1 -0
- package/dist/lib/toast/toast.cjs +1 -1
- package/dist/lib/toast/toast.cjs.map +1 -1
- package/dist/lib/toast/toast.js +12 -11
- package/dist/lib/toast/toast.js.map +1 -1
- package/dist/lib/toggle/toggle-constants.cjs +1 -1
- package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
- package/dist/lib/toggle/toggle-constants.js +6 -2
- package/dist/lib/toggle/toggle-constants.js.map +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 +39 -35
- package/dist/lib/toggle/toggle.js.map +1 -1
- package/dist/lib/tooltip/tooltip.cjs +2 -2
- package/dist/lib/tooltip/tooltip.cjs.map +1 -1
- package/dist/lib/tooltip/tooltip.js +31 -26
- package/dist/lib/tooltip/tooltip.js.map +1 -1
- package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
- package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
- package/dist/lib/tooltip-directive/tooltip.js +40 -39
- package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
- package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
- package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
- package/dist/lib/top-banner-info/top-banner-info.js +16 -16
- package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
- package/dist/lib/unread-pill/unread-pill.cjs +1 -1
- package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
- package/dist/lib/unread-pill/unread-pill.js +1 -1
- package/dist/lib/unread-pill/unread-pill.js.map +1 -1
- package/dist/localization/en-US.cjs +5 -0
- package/dist/localization/en-US.cjs.map +1 -1
- package/dist/localization/en-US.js +5 -0
- package/dist/localization/en-US.js.map +1 -1
- package/dist/mode_constants-C1GFodVj.js +14 -0
- package/dist/mode_constants-C1GFodVj.js.map +1 -0
- package/dist/mode_constants-DeLSnTcQ.cjs +2 -0
- package/dist/mode_constants-DeLSnTcQ.cjs.map +1 -0
- package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/shared/sr_only_close_button.cjs +1 -1
- package/dist/shared/sr_only_close_button.cjs.map +1 -1
- package/dist/shared/sr_only_close_button.js +1 -1
- package/dist/shared/sr_only_close_button.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/common/constants/index.d.ts +25 -19
- package/dist/types/common/constants/index.d.ts.map +1 -1
- package/dist/types/common/constants/sizes.d.ts +22 -0
- package/dist/types/common/constants/sizes.d.ts.map +1 -0
- package/dist/types/common/mixins/index.d.ts +1 -0
- package/dist/types/common/mixins/mode.d.ts +25 -0
- package/dist/types/common/mixins/mode.d.ts.map +1 -0
- package/dist/types/common/mode_constants.d.ts +37 -0
- package/dist/types/common/mode_constants.d.ts.map +1 -0
- package/dist/types/common/sr_only_close_button.vue.d.ts +53 -7
- package/dist/types/common/sr_only_close_button.vue.d.ts.map +1 -1
- package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
- package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
- package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
- package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
- package/dist/types/components/avatar/index.d.ts +1 -1
- package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
- package/dist/types/components/banner/banner.vue.d.ts +246 -15
- package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
- package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
- package/dist/types/components/button/button.vue.d.ts +53 -7
- package/dist/types/components/button/button.vue.d.ts.map +1 -1
- package/dist/types/components/button/button_constants.d.ts +28 -19
- package/dist/types/components/button/button_constants.d.ts.map +1 -1
- package/dist/types/components/checkbox/checkbox.vue.d.ts +178 -4
- package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
- package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +138 -0
- package/dist/types/components/chip/chip.vue.d.ts +58 -12
- package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
- package/dist/types/components/chip/chip_constants.d.ts +24 -21
- package/dist/types/components/chip/chip_constants.d.ts.map +1 -1
- package/dist/types/components/codeblock/codeblock.vue.d.ts +25 -2
- package/dist/types/components/codeblock/codeblock.vue.d.ts.map +1 -1
- package/dist/types/components/codeblock/codeblock_constants.d.ts +9 -0
- package/dist/types/components/codeblock/codeblock_constants.d.ts.map +1 -0
- package/dist/types/components/collapsible/collapsible.vue.d.ts +53 -7
- package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox.vue.d.ts +109 -34
- package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +40 -7
- package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +64 -22
- package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
- package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts +16 -13
- package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
- package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts +388 -82
- package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
- package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown.vue.d.ts +170 -14
- package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
- package/dist/types/components/emoji/emoji.vue.d.ts +24 -15
- package/dist/types/components/emoji_picker/emoji_picker.vue.d.ts +196 -6
- package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts +196 -6
- package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
- package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
- package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +24 -15
- package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
- package/dist/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
- package/dist/types/components/empty_state/empty_state_constants.d.ts +52 -31
- package/dist/types/components/empty_state/empty_state_constants.d.ts.map +1 -1
- package/dist/types/components/filter_pill/filter_pill.vue.d.ts +4487 -0
- package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
- package/dist/types/components/filter_pill/index.d.ts +2 -0
- package/dist/types/components/filter_pill/index.d.ts.map +1 -0
- package/dist/types/components/hovercard/hovercard.vue.d.ts +368 -29
- package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts +131 -14
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/types/components/input/input.vue.d.ts +187 -5
- package/dist/types/components/input/input.vue.d.ts.map +1 -1
- package/dist/types/components/input/input_constants.d.ts +44 -46
- package/dist/types/components/input/input_constants.d.ts.map +1 -1
- package/dist/types/components/input_group/input_group.vue.d.ts +138 -0
- package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
- package/dist/types/components/item_layout/item_layout.vue.d.ts +37 -6
- package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +138 -0
- package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
- package/dist/types/components/link/link.vue.d.ts +9 -0
- package/dist/types/components/list_item/list_item.vue.d.ts +40 -7
- package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
- package/dist/types/components/modal/modal.vue.d.ts +271 -16
- package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
- package/dist/types/components/mode_island/index.d.ts +3 -0
- package/dist/types/components/mode_island/index.d.ts.map +1 -0
- package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
- package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
- package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
- package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
- package/dist/types/components/mode_island/utils.d.ts +12 -0
- package/dist/types/components/mode_island/utils.d.ts.map +1 -0
- package/dist/types/components/mode_island/validators.d.ts +6 -0
- package/dist/types/components/mode_island/validators.d.ts.map +1 -0
- package/dist/types/components/motion_text/motion_text_constants.d.ts +27 -23
- package/dist/types/components/motion_text/motion_text_constants.d.ts.map +1 -1
- package/dist/types/components/notice/notice.vue.d.ts +246 -15
- package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_action.vue.d.ts +106 -14
- package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_content.vue.d.ts +140 -1
- package/dist/types/components/notice/notice_content.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination.vue.d.ts +53 -7
- package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover.vue.d.ts +159 -14
- package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover_header_footer.vue.d.ts +62 -7
- package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
- package/dist/types/components/radio/radio.vue.d.ts +173 -0
- package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
- package/dist/types/components/radio_group/radio_group.vue.d.ts +138 -0
- package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
- package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +24 -15
- package/dist/types/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +24 -15
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +209 -25
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +140 -1
- package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +40 -7
- package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +399 -26
- package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
- package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
- package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
- package/dist/types/components/segmented_control/index.d.ts +4 -0
- package/dist/types/components/segmented_control/index.d.ts.map +1 -0
- package/dist/types/components/segmented_control/segmented_control.vue.d.ts +224 -0
- package/dist/types/components/segmented_control/segmented_control.vue.d.ts.map +1 -0
- package/dist/types/components/segmented_control/segmented_control_constants.d.ts +41 -0
- package/dist/types/components/segmented_control/segmented_control_constants.d.ts.map +1 -0
- package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts +35 -0
- package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts.map +1 -0
- package/dist/types/components/select_menu/select_menu.vue.d.ts +182 -18
- package/dist/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
- package/dist/types/components/select_menu/select_menu_constants.d.ts +12 -7
- package/dist/types/components/select_menu/select_menu_constants.d.ts.map +1 -1
- package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +13 -10
- package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -0
- package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +5 -5
- package/dist/types/components/skeleton/skeleton-text.vue.d.ts +3 -0
- package/dist/types/components/skeleton/skeleton.vue.d.ts +24 -15
- package/dist/types/components/skeleton/skeleton_constants.d.ts +18 -13
- package/dist/types/components/skeleton/skeleton_constants.d.ts.map +1 -1
- package/dist/types/components/split_button/{split_button-omega.vue.d.ts → split_button-end.vue.d.ts} +64 -13
- package/dist/types/components/split_button/{split_button-omega.vue.d.ts.map → split_button-end.vue.d.ts.map} +1 -1
- package/dist/types/components/split_button/{split_button-alpha.vue.d.ts → split_button-start.vue.d.ts} +125 -11
- package/dist/types/components/split_button/split_button-start.vue.d.ts.map +1 -0
- package/dist/types/components/split_button/split_button.vue.d.ts +589 -66
- package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button_constants.d.ts +12 -7
- package/dist/types/components/split_button/split_button_constants.d.ts.map +1 -1
- package/dist/types/components/stack/stack_constants.d.ts.map +1 -1
- package/dist/types/components/tab/index.d.ts +1 -1
- package/dist/types/components/tab/tab.vue.d.ts +85 -11
- package/dist/types/components/tab/tab.vue.d.ts.map +1 -1
- package/dist/types/components/tab/tab_group.vue.d.ts +91 -5
- package/dist/types/components/tab/tab_group.vue.d.ts.map +1 -1
- package/dist/types/components/tab/tabs_constants.d.ts +23 -5
- package/dist/types/components/tab/tabs_constants.d.ts.map +1 -1
- package/dist/types/components/text/index.d.ts +3 -0
- package/dist/types/components/text/index.d.ts.map +1 -0
- package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
- package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
- package/dist/types/components/text/text.vue.d.ts +141 -0
- package/dist/types/components/text/text.vue.d.ts.map +1 -0
- package/dist/types/components/text/text_constants.d.ts +82 -0
- package/dist/types/components/text/text_constants.d.ts.map +1 -0
- package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
- package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
- package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +246 -15
- package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
- package/dist/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
- package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +246 -15
- package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
- package/dist/types/components/toast/toast.vue.d.ts +1033 -109
- package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
- package/dist/types/components/toggle/toggle.vue.d.ts +14 -6
- package/dist/types/components/toggle/toggle.vue.d.ts.map +1 -1
- package/dist/types/components/toggle/toggle_constants.d.ts +6 -4
- package/dist/types/components/toggle/toggle_constants.d.ts.map +1 -1
- package/dist/types/components/tooltip/tooltip.vue.d.ts +27 -1
- package/dist/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
- package/dist/types/directives/mode_directive/index.d.ts +2 -0
- package/dist/types/directives/mode_directive/index.d.ts.map +1 -0
- package/dist/types/directives/mode_directive/mode.d.ts +6 -0
- package/dist/types/directives/mode_directive/mode.d.ts.map +1 -0
- package/dist/types/directives/tooltip_directive/tooltip.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +80 -8
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
- package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +303 -29
- package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
- package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +293 -30
- package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
- package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +223 -21
- package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
- package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +58 -12
- package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +237 -28
- package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +184 -21
- package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +53 -7
- package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +223 -21
- package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +212 -21
- package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +128 -38
- package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +90 -13
- package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +111 -32
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +90 -13
- package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +218 -8
- package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +617 -34
- package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +218 -8
- package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
- package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +53 -7
- package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
- package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +108 -31
- package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
- package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +77 -22
- package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +557 -64
- package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +462 -24
- package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +462 -24
- package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
- package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
- package/package.json +6 -5
- package/dist/lib/split-button/split-button-alpha.cjs +0 -2
- package/dist/lib/split-button/split-button-alpha.cjs.map +0 -1
- package/dist/lib/split-button/split-button-alpha.js +0 -138
- package/dist/lib/split-button/split-button-alpha.js.map +0 -1
- package/dist/lib/split-button/split-button-omega.cjs +0 -2
- package/dist/lib/split-button/split-button-omega.cjs.map +0 -1
- package/dist/lib/split-button/split-button-omega.js.map +0 -1
- package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +0 -1
package/dist/lib/modal/modal.js
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
import { DtIconClose as
|
|
2
|
-
import
|
|
1
|
+
import { DtIconClose as O } from "@dialpad/dialtone-icons/vue";
|
|
2
|
+
import B from "../../common/mixins/modal.js";
|
|
3
|
+
import F from "../../common/mixins/mode.js";
|
|
3
4
|
import { MODAL_BANNER_KINDS as y, MODAL_SIZE_MODIFIERS as b, MODAL_KIND_MODIFIERS as E } from "./modal-constants.js";
|
|
4
|
-
import { disableRootScrolling as
|
|
5
|
-
import { EVENT_KEYNAMES as
|
|
6
|
-
import
|
|
7
|
-
import { DialtoneLocalization as
|
|
8
|
-
import { resolveComponent as
|
|
9
|
-
import { _ as
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
|
|
5
|
+
import { disableRootScrolling as M, returnFirstEl as g, enableRootScrolling as A, hasSlotContent as N, getUniqueString as R } from "../../common/utils/index.js";
|
|
6
|
+
import { EVENT_KEYNAMES as r } from "../../common/constants/index.js";
|
|
7
|
+
import L from "../../shared/sr_only_close_button.js";
|
|
8
|
+
import { DialtoneLocalization as v } from "../../localization/index.js";
|
|
9
|
+
import { resolveComponent as n, openBlock as a, createBlock as c, Teleport as z, createVNode as f, mergeProps as K, toHandlers as q, withCtx as m, createElementBlock as d, normalizeClass as u, renderSlot as h, createTextVNode as S, toDisplayString as _, createCommentVNode as C, Transition as j, withDirectives as x, createElementVNode as H, vShow as V } from "vue";
|
|
10
|
+
import { _ as P } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
11
|
+
import U from "../text/text.js";
|
|
12
|
+
import W from "../button/button.js";
|
|
13
|
+
import Z from "../lazy-show/lazy-show.js";
|
|
14
|
+
import { NOTICE_KINDS as Y } from "../notice/notice-constants.js";
|
|
15
|
+
const $ = {
|
|
14
16
|
compatConfig: { MODE: 3 },
|
|
15
17
|
name: "DtModal",
|
|
16
18
|
components: {
|
|
17
|
-
DtLazyShow:
|
|
18
|
-
DtButton:
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
DtLazyShow: Z,
|
|
20
|
+
DtButton: W,
|
|
21
|
+
DtText: U,
|
|
22
|
+
DtIconClose: O,
|
|
23
|
+
SrOnlyCloseButton: L
|
|
21
24
|
},
|
|
22
|
-
mixins: [
|
|
25
|
+
mixins: [B, F],
|
|
23
26
|
props: {
|
|
24
27
|
/**
|
|
25
28
|
* Body text to display as the modal's main content.
|
|
@@ -43,7 +46,7 @@ const Z = {
|
|
|
43
46
|
labelledById: {
|
|
44
47
|
type: String,
|
|
45
48
|
default: function() {
|
|
46
|
-
return
|
|
49
|
+
return R();
|
|
47
50
|
}
|
|
48
51
|
},
|
|
49
52
|
/**
|
|
@@ -76,7 +79,7 @@ const Z = {
|
|
|
76
79
|
kind: {
|
|
77
80
|
type: String,
|
|
78
81
|
default: "default",
|
|
79
|
-
validator: (
|
|
82
|
+
validator: (t) => Object.keys(E).includes(t)
|
|
80
83
|
},
|
|
81
84
|
/**
|
|
82
85
|
* The size of the modal. size - default or full,
|
|
@@ -85,7 +88,7 @@ const Z = {
|
|
|
85
88
|
size: {
|
|
86
89
|
type: String,
|
|
87
90
|
default: "default",
|
|
88
|
-
validator: (
|
|
91
|
+
validator: (t) => Object.keys(b).includes(t)
|
|
89
92
|
},
|
|
90
93
|
/**
|
|
91
94
|
* Additional class name for the root modal element.
|
|
@@ -121,8 +124,8 @@ const Z = {
|
|
|
121
124
|
bannerKind: {
|
|
122
125
|
type: String,
|
|
123
126
|
default: "warning",
|
|
124
|
-
|
|
125
|
-
return
|
|
127
|
+
validator(t) {
|
|
128
|
+
return Y.includes(t);
|
|
126
129
|
}
|
|
127
130
|
},
|
|
128
131
|
/**
|
|
@@ -168,7 +171,7 @@ const Z = {
|
|
|
168
171
|
initialFocusElement: {
|
|
169
172
|
type: [String, HTMLElement],
|
|
170
173
|
default: "first",
|
|
171
|
-
validator: (
|
|
174
|
+
validator: (t) => t === "first" || t instanceof HTMLElement || t.startsWith("#")
|
|
172
175
|
},
|
|
173
176
|
/**
|
|
174
177
|
* A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.
|
|
@@ -207,36 +210,36 @@ const Z = {
|
|
|
207
210
|
MODAL_KIND_MODIFIERS: E,
|
|
208
211
|
MODAL_SIZE_MODIFIERS: b,
|
|
209
212
|
MODAL_BANNER_KINDS: y,
|
|
210
|
-
EVENT_KEYNAMES:
|
|
211
|
-
hasSlotContent:
|
|
212
|
-
i18n: new
|
|
213
|
+
EVENT_KEYNAMES: r,
|
|
214
|
+
hasSlotContent: N,
|
|
215
|
+
i18n: new v()
|
|
213
216
|
};
|
|
214
217
|
},
|
|
215
218
|
computed: {
|
|
216
219
|
modalListeners() {
|
|
217
220
|
return {
|
|
218
|
-
click: (
|
|
219
|
-
this.closeOnClick &&
|
|
221
|
+
click: (t) => {
|
|
222
|
+
this.closeOnClick && t.target === t.currentTarget ? this.close() : this.show && t.target !== t.currentTarget && this.handleModalClick(t), this.$emit("click", t);
|
|
220
223
|
},
|
|
221
|
-
keydown: (
|
|
222
|
-
switch (
|
|
223
|
-
case
|
|
224
|
-
case
|
|
224
|
+
keydown: (t) => {
|
|
225
|
+
switch (t.code) {
|
|
226
|
+
case r.esc:
|
|
227
|
+
case r.escape:
|
|
225
228
|
this.close();
|
|
226
229
|
break;
|
|
227
|
-
case
|
|
228
|
-
this.trapFocus(
|
|
230
|
+
case r.tab:
|
|
231
|
+
this.trapFocus(t);
|
|
229
232
|
break;
|
|
230
233
|
}
|
|
231
|
-
this.$emit("keydown",
|
|
234
|
+
this.$emit("keydown", t);
|
|
232
235
|
},
|
|
233
236
|
"after-enter": async () => {
|
|
234
237
|
this.$emit("update:show", !0), await this.setFocusAfterTransition();
|
|
235
238
|
},
|
|
236
|
-
focusin: (
|
|
237
|
-
var
|
|
238
|
-
const o = ((
|
|
239
|
-
this.show && o && !o.contains(
|
|
239
|
+
focusin: (t) => {
|
|
240
|
+
var e;
|
|
241
|
+
const o = ((e = this.$refs.modalRoot) == null ? void 0 : e.$el) || this.$el;
|
|
242
|
+
this.show && o && !o.contains(t.target) && (t.preventDefault(), this.focusFirstElement(o));
|
|
240
243
|
}
|
|
241
244
|
};
|
|
242
245
|
},
|
|
@@ -255,15 +258,15 @@ const Z = {
|
|
|
255
258
|
},
|
|
256
259
|
watch: {
|
|
257
260
|
show: {
|
|
258
|
-
handler(
|
|
259
|
-
var o,
|
|
260
|
-
if (
|
|
261
|
+
handler(t) {
|
|
262
|
+
var o, e, i;
|
|
263
|
+
if (t) {
|
|
261
264
|
this.previousActiveElement = document.activeElement;
|
|
262
265
|
const l = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
|
|
263
|
-
|
|
266
|
+
M(g(l).getRootNode().host);
|
|
264
267
|
} else {
|
|
265
|
-
const l = ((
|
|
266
|
-
|
|
268
|
+
const l = ((e = this.$refs.modalRoot) == null ? void 0 : e.$el) || this.$el;
|
|
269
|
+
A(g(l).getRootNode().host), (i = this.previousActiveElement) == null || i.focus(), this.previousActiveElement = null;
|
|
267
270
|
}
|
|
268
271
|
}
|
|
269
272
|
}
|
|
@@ -274,129 +277,140 @@ const Z = {
|
|
|
274
277
|
},
|
|
275
278
|
async setFocusAfterTransition() {
|
|
276
279
|
var o;
|
|
277
|
-
const
|
|
278
|
-
this.initialFocusElement === "first" ? await this.focusFirstElement(
|
|
280
|
+
const t = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
|
|
281
|
+
this.initialFocusElement === "first" ? await this.focusFirstElement(t) : this.initialFocusElement.startsWith("#") ? await this.focusElementById(this.initialFocusElement) : this.initialFocusElement instanceof HTMLElement && this.initialFocusElement.focus();
|
|
279
282
|
},
|
|
280
|
-
trapFocus(
|
|
283
|
+
trapFocus(t) {
|
|
281
284
|
var o;
|
|
282
285
|
if (this.show) {
|
|
283
|
-
const
|
|
284
|
-
this.focusTrappedTabPress(
|
|
286
|
+
const e = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
|
|
287
|
+
this.focusTrappedTabPress(t, e);
|
|
285
288
|
}
|
|
286
289
|
},
|
|
287
|
-
handleModalClick(
|
|
290
|
+
handleModalClick(t) {
|
|
288
291
|
var l;
|
|
289
|
-
const o =
|
|
290
|
-
i.length && !i.includes(o) && (i.includes(document.activeElement) || this.focusFirstElement(
|
|
292
|
+
const o = t.target, e = ((l = this.$refs.modalRoot) == null ? void 0 : l.$el) || this.$el, i = this._getFocusableElements(e);
|
|
293
|
+
i.length && !i.includes(o) && (i.includes(document.activeElement) || this.focusFirstElement(e));
|
|
291
294
|
}
|
|
292
295
|
}
|
|
293
|
-
},
|
|
296
|
+
}, G = ["aria-describedby", "aria-labelledby"], J = ["id"], Q = {
|
|
294
297
|
key: 4,
|
|
295
298
|
class: "d-modal__footer"
|
|
296
299
|
};
|
|
297
|
-
function
|
|
298
|
-
const
|
|
299
|
-
return a(),
|
|
300
|
-
disabled: !
|
|
301
|
-
to:
|
|
300
|
+
function X(t, o, e, i, l, s) {
|
|
301
|
+
const k = n("dt-text"), w = n("sr-only-close-button"), p = n("dt-icon-close"), T = n("dt-button"), D = n("dt-lazy-show");
|
|
302
|
+
return a(), c(z, {
|
|
303
|
+
disabled: !e.appendTo,
|
|
304
|
+
to: e.appendTo
|
|
302
305
|
}, [
|
|
303
|
-
|
|
306
|
+
f(D, K({
|
|
304
307
|
ref: "modalRoot",
|
|
305
308
|
transition: "d-zoom",
|
|
306
|
-
show:
|
|
309
|
+
show: e.show,
|
|
307
310
|
class: [
|
|
308
311
|
"d-modal",
|
|
309
|
-
l.MODAL_KIND_MODIFIERS[
|
|
310
|
-
l.MODAL_SIZE_MODIFIERS[
|
|
311
|
-
|
|
312
|
+
l.MODAL_KIND_MODIFIERS[e.kind],
|
|
313
|
+
l.MODAL_SIZE_MODIFIERS[e.size],
|
|
314
|
+
e.modalClass
|
|
312
315
|
],
|
|
313
316
|
"data-qa": "dt-modal",
|
|
314
317
|
"aria-hidden": s.open
|
|
315
|
-
},
|
|
316
|
-
default:
|
|
317
|
-
|
|
318
|
+
}, t.modeAttrs, q(s.modalListeners)), {
|
|
319
|
+
default: m(() => [
|
|
320
|
+
e.show && (l.hasSlotContent(t.$slots.banner) || e.bannerTitle) ? (a(), d("div", {
|
|
318
321
|
key: 0,
|
|
319
322
|
"data-qa": "dt-modal-banner",
|
|
320
|
-
class:
|
|
323
|
+
class: u([
|
|
321
324
|
"d-modal__banner",
|
|
322
|
-
|
|
325
|
+
e.bannerClass,
|
|
323
326
|
s.bannerKindClass
|
|
324
327
|
])
|
|
325
328
|
}, [
|
|
326
|
-
|
|
327
|
-
|
|
329
|
+
h(t.$slots, "banner", {}, () => [
|
|
330
|
+
S(_(e.bannerTitle), 1)
|
|
328
331
|
])
|
|
329
|
-
], 2)) :
|
|
330
|
-
|
|
332
|
+
], 2)) : C("", !0),
|
|
333
|
+
f(j, {
|
|
331
334
|
appear: "",
|
|
332
335
|
name: "d-modal__dialog"
|
|
333
336
|
}, {
|
|
334
|
-
default:
|
|
335
|
-
|
|
336
|
-
class:
|
|
337
|
+
default: m(() => [
|
|
338
|
+
x(H("div", {
|
|
339
|
+
class: u([
|
|
337
340
|
"d-modal__dialog",
|
|
338
|
-
{ "d-modal__dialog--scrollable":
|
|
339
|
-
|
|
341
|
+
{ "d-modal__dialog--scrollable": e.fixedHeaderFooter },
|
|
342
|
+
e.dialogClass
|
|
340
343
|
]),
|
|
341
344
|
role: "dialog",
|
|
342
345
|
"aria-modal": "true",
|
|
343
|
-
"aria-describedby":
|
|
344
|
-
"aria-labelledby":
|
|
346
|
+
"aria-describedby": e.describedById,
|
|
347
|
+
"aria-labelledby": e.labelledById
|
|
345
348
|
}, [
|
|
346
|
-
l.hasSlotContent(
|
|
349
|
+
l.hasSlotContent(t.$slots.header) ? (a(), d("div", {
|
|
347
350
|
key: 0,
|
|
348
|
-
id:
|
|
351
|
+
id: e.labelledById,
|
|
349
352
|
class: "d-modal__header",
|
|
350
353
|
"data-qa": "dt-modal-title"
|
|
351
354
|
}, [
|
|
352
|
-
|
|
353
|
-
], 8,
|
|
355
|
+
h(t.$slots, "header")
|
|
356
|
+
], 8, J)) : (a(), c(k, {
|
|
354
357
|
key: 1,
|
|
355
|
-
id:
|
|
358
|
+
id: e.labelledById,
|
|
359
|
+
kind: "headline",
|
|
360
|
+
size: 600,
|
|
361
|
+
strength: "medium",
|
|
362
|
+
density: "100",
|
|
363
|
+
"text-box-trim": "start",
|
|
364
|
+
as: "h2",
|
|
356
365
|
class: "d-modal__header",
|
|
357
366
|
"data-qa": "dt-modal-title"
|
|
358
|
-
},
|
|
359
|
-
|
|
367
|
+
}, {
|
|
368
|
+
default: m(() => [
|
|
369
|
+
S(_(e.title), 1)
|
|
370
|
+
]),
|
|
371
|
+
_: 1
|
|
372
|
+
}, 8, ["id"])),
|
|
373
|
+
l.hasSlotContent(t.$slots.default) ? (a(), d("div", {
|
|
360
374
|
key: 2,
|
|
361
|
-
class:
|
|
375
|
+
class: u([
|
|
362
376
|
"d-modal__content",
|
|
363
|
-
|
|
377
|
+
e.contentClass
|
|
364
378
|
]),
|
|
365
379
|
"data-qa": "dt-modal-copy"
|
|
366
380
|
}, [
|
|
367
|
-
|
|
368
|
-
], 2)) : (a(),
|
|
381
|
+
h(t.$slots, "default")
|
|
382
|
+
], 2)) : (a(), d("p", {
|
|
369
383
|
key: 3,
|
|
370
|
-
class:
|
|
384
|
+
class: u([
|
|
371
385
|
"d-modal__content",
|
|
372
|
-
|
|
386
|
+
e.contentClass
|
|
373
387
|
]),
|
|
374
388
|
"data-qa": "dt-modal-copy"
|
|
375
|
-
}, _(
|
|
376
|
-
s.hasFooterSlot ? (a(),
|
|
377
|
-
|
|
378
|
-
])) :
|
|
379
|
-
|
|
389
|
+
}, _(e.copy), 3)),
|
|
390
|
+
s.hasFooterSlot ? (a(), d("footer", Q, [
|
|
391
|
+
h(t.$slots, "footer")
|
|
392
|
+
])) : C("", !0),
|
|
393
|
+
e.hideClose ? (a(), c(w, {
|
|
380
394
|
key: 5,
|
|
381
395
|
onClose: s.close
|
|
382
|
-
}, null, 8, ["onClose"])) : (a(),
|
|
396
|
+
}, null, 8, ["onClose"])) : (a(), c(T, {
|
|
383
397
|
key: 6,
|
|
384
398
|
class: "d-modal__close",
|
|
385
399
|
"data-qa": "dt-modal-close-button",
|
|
386
|
-
size:
|
|
400
|
+
size: 300,
|
|
387
401
|
kind: "muted",
|
|
388
402
|
importance: "clear",
|
|
389
403
|
"aria-label": s.closeButtonTitle,
|
|
390
404
|
title: s.closeButtonTitle,
|
|
391
405
|
onClick: s.close
|
|
392
406
|
}, {
|
|
393
|
-
icon:
|
|
394
|
-
|
|
407
|
+
icon: m(({ iconSize: I }) => [
|
|
408
|
+
f(p, { size: I }, null, 8, ["size"])
|
|
395
409
|
]),
|
|
396
410
|
_: 1
|
|
397
411
|
}, 8, ["aria-label", "title", "onClick"]))
|
|
398
|
-
], 10,
|
|
399
|
-
[
|
|
412
|
+
], 10, G), [
|
|
413
|
+
[V, e.show]
|
|
400
414
|
])
|
|
401
415
|
]),
|
|
402
416
|
_: 3
|
|
@@ -406,8 +420,8 @@ function J(e, o, t, i, l, s) {
|
|
|
406
420
|
}, 16, ["show", "class", "aria-hidden"])
|
|
407
421
|
], 8, ["disabled", "to"]);
|
|
408
422
|
}
|
|
409
|
-
const
|
|
423
|
+
const ft = /* @__PURE__ */ P($, [["render", X]]);
|
|
410
424
|
export {
|
|
411
|
-
|
|
425
|
+
ft as default
|
|
412
426
|
};
|
|
413
427
|
//# sourceMappingURL=modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sources":["../../../components/modal/modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo\"\n :to=\"appendTo\"\n >\n <dt-lazy-show\n ref=\"modalRoot\"\n transition=\"d-zoom\"\n :show=\"show\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n MODAL_SIZE_MODIFIERS[size],\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-hidden=\"open\"\n v-on=\"modalListeners\"\n >\n <div\n v-if=\"show && (hasSlotContent($slots.banner) || bannerTitle)\"\n data-qa=\"dt-modal-banner\"\n :class=\"[\n 'd-modal__banner',\n bannerClass,\n bannerKindClass,\n ]\"\n >\n <!-- @slot Slot for the banner, defaults to bannerTitle prop -->\n <slot name=\"banner\">\n {{ bannerTitle }}\n </slot>\n </div>\n <transition\n appear\n name=\"d-modal__dialog\"\n >\n <div\n v-show=\"show\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-describedby=\"describedById\"\n :aria-labelledby=\"labelledById\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"title\" text prop -->\n <slot name=\"header\" />\n </div>\n <h2\n v-else\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n {{ title }}\n </h2>\n <div\n v-if=\"hasSlotContent($slots.default)\"\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n <!-- @slot Default slot for dialog body section, taking the place of any \"copy\" text prop -->\n <slot />\n </div>\n <p\n v-else\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n {{ copy }}\n </p>\n <footer\n v-if=\"hasFooterSlot\"\n class=\"d-modal__footer\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <sr-only-close-button\n v-if=\"hideClose\"\n @close=\"close\"\n />\n <dt-button\n v-else\n class=\"d-modal__close\"\n data-qa=\"dt-modal-close-button\"\n size=\"md\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon=\"{ iconSize }\">\n <dt-icon-close\n :size=\"iconSize\"\n />\n </template>\n </dt-button>\n </div>\n </transition>\n </dt-lazy-show>\n </teleport>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/button';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue3';\nimport Modal from '@/common/mixins/modal';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n} from './modal_constants';\nimport { returnFirstEl, getUniqueString, hasSlotContent, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/notice';\nimport { DialtoneLocalization } from '@/localization';\n\n/**\n * Modals focus the user’s attention exclusively on one task or piece of information\n * via a window that sits on top of the page content.\n * @see https://dialtone.dialpad.com/components/modal.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtModal',\n\n components: {\n DtLazyShow,\n DtButton,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [Modal],\n\n props: {\n /**\n * Body text to display as the modal's main content.\n */\n copy: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-describedby.\n * Recommended only if the dialog content itself isn't enough to give full context,\n * as screen readers should recite the dialog contents by default before any aria-description.\n */\n describedById: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-labelledby.\n */\n labelledById: {\n type: String,\n default: function () { return getUniqueString(); },\n },\n\n /**\n * Whether the modal should be shown.\n * Parent component can sync on this value to control the modal's visibility.\n * @values true, false\n */\n show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Title text to display in the modal header.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Title text to display in the modal banner.\n */\n bannerTitle: {\n type: String,\n default: '',\n },\n\n /**\n * The theme of the modal. kind - default or danger,\n * @values default, danger\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * The size of the modal. size - default or full,\n * @values default, full\n */\n size: {\n type: String,\n default: 'default',\n validator: (s) => Object.keys(MODAL_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Additional class name for the root modal element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n modalClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the dialog element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n dialogClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the content element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Sets the color of the banner.\n * @values base, error, info, success, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Additional class name for the banner element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n bannerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Hides the close button on the modal\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the modal will close when you click outside of the dialog on the overlay.\n * @values true, false\n */\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Scrollable modal that allows scroll the modal content keeping the header and footer fixed\n * @values true, false\n */\n fixedHeaderFooter: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element that is focused when the modal is opened. This can be an\n * HTMLElement within the modal, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: [String, HTMLElement],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.\n */\n appendTo: {\n type: String,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Native button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Native keydown event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n\n /**\n * The modal will emit a \"false\" boolean value for this event when the user performs a modal-closing action.\n * Parent components can sync on this value to create a 2-way binding to control modal visibility.\n *\n * @event update:show\n * @type {Boolean}\n */\n 'update:show',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n MODAL_BANNER_KINDS,\n EVENT_KEYNAMES,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n modalListeners () {\n return {\n click: event => {\n // Handle backdrop clicks for closing modal\n if (this.closeOnClick && event.target === event.currentTarget) {\n this.close();\n } else if (this.show && event.target !== event.currentTarget) {\n // Ensure focus stays within modal when clicking inside it\n this.handleModalClick(event);\n }\n\n this.$emit('click', event);\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n\n 'after-enter': async () => {\n this.$emit('update:show', true);\n await this.setFocusAfterTransition();\n },\n\n focusin: event => {\n // Ensure focus stays within modal\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.show && modalEl && !modalEl.contains(event.target)) {\n event.preventDefault();\n this.focusFirstElement(modalEl);\n }\n },\n };\n },\n\n open () {\n return `${!this.show}`;\n },\n\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n show: {\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n disableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n } else {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n enableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n },\n\n methods: {\n close () {\n this.$emit('update:show', false);\n },\n\n async setFocusAfterTransition () {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.initialFocusElement === 'first') {\n await this.focusFirstElement(modalEl);\n } else if (this.initialFocusElement.startsWith('#')) {\n await this.focusElementById(this.initialFocusElement);\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n\n trapFocus (e) {\n if (this.show) {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n this.focusTrappedTabPress(e, modalEl);\n }\n },\n\n handleModalClick (event) {\n // Ensure focus stays within modal when clicking inside it\n const clickedElement = event.target;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n const focusableElements = this._getFocusableElements(modalEl);\n\n // If the clicked element is not focusable, ensure focus stays in modal\n if (focusableElements.length && !focusableElements.includes(clickedElement)) {\n // Check if current active element is still within the modal\n if (!focusableElements.includes(document.activeElement)) {\n this.focusFirstElement(modalEl);\n }\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtLazyShow","DtButton","DtIconClose","SrOnlyCloseButton","Modal","getUniqueString","k","MODAL_KIND_MODIFIERS","s","MODAL_SIZE_MODIFIERS","kind","NOTICE_KINDS","initialFocusElement","MODAL_BANNER_KINDS","EVENT_KEYNAMES","hasSlotContent","DialtoneLocalization","event","modalEl","_a","isShowing","disableRootScrolling","returnFirstEl","_b","enableRootScrolling","_c","clickedElement","focusableElements","_createBlock","_Teleport","$props","_createVNode","_component_dt_lazy_show","_mergeProps","$data","$options","_toHandlers","_ctx","_createElementBlock","_normalizeClass","_renderSlot","_Transition","_createElementVNode","_hoisted_3","_openBlock","_hoisted_4","_component_sr_only_close_button","_component_dt_button","_withCtx","iconSize","_component_dt_icon_close"],"mappings":";;;;;;;;;;;;AA+IA,MAAKA,IAAU;AAAA,EACb,cAAc,EAAE,MAAM;EACtB,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,mBAAAC;AAAA;EAGF,QAAQ,CAACC,CAAK;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;;;;;;IAQX,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS,WAAY;AAAE,eAAOC,EAAe;AAAA,MAAI;AAAA;;;;;;IAQnD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA;;;;IAMX,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACC,MAAM,OAAO,KAAKC,CAAoB,EAAE,SAASD,CAAC;AAAA;;;;;IAOhE,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAACE,MAAM,OAAO,KAAKC,CAAoB,EAAE,SAASD,CAAC;AAAA;;;;;;IAQhE,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA;;;;;;IAQX,aAAa;AAAA,MACX,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA;;;;;;IAQX,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA;;;;;IAOX,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAUE,GAAM;AACd,eAAOC,EAAa,SAASD,CAAI;AAAA,MACnC;AAAA;;;;;;IAQF,aAAa;AAAA,MACX,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA;;;;;IAOX,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOX,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA;;;;;IAOX,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA;;;;;;;;IAUX,qBAAqB;AAAA,MACnB,MAAM,CAAC,QAAQ,WAAW;AAAA,MAC1B,SAAS;AAAA,MACT,WAAW,CAAAE,MACFA,MAAwB,WAC5BA,aAA+B,eAChCA,EAAoB,WAAW,GAAG;AAAA;;;;IAOxC,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;EAIb,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA;AAAA;EAGF,OAAQ;AACN,WAAO;AAAA,MACL,sBAAAL;AAAA,MACA,sBAAAE;AAAA,MACA,oBAAAI;AAAA,MACA,gBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,MAAM,IAAIC,EAAoB;AAAA;EAElC;AAAA,EAEA,UAAU;AAAA,IACR,iBAAkB;AAChB,aAAO;AAAA,QACL,OAAO,CAAAC,MAAS;AAEd,UAAI,KAAK,gBAAgBA,EAAM,WAAWA,EAAM,gBAC9C,KAAK,MAAK,IACD,KAAK,QAAQA,EAAM,WAAWA,EAAM,iBAE7C,KAAK,iBAAiBA,CAAK,GAG7B,KAAK,MAAM,SAASA,CAAK;AAAA,QAC3B;AAAA,QAEA,SAAS,CAAAA,MAAS;AAChB,kBAAQA,EAAM,MAAI;AAAA,YAChB,KAAKH,EAAe;AAAA,YACpB,KAAKA,EAAe;AAClB,mBAAK,MAAK;AACV;AAAA,YACF,KAAKA,EAAe;AAClB,mBAAK,UAAUG,CAAK;AACpB;AAAA,UACJ;AACA,eAAK,MAAM,WAAWA,CAAK;AAAA,QAC7B;AAAA,QAEA,eAAe,YAAY;AACzB,eAAK,MAAM,eAAe,EAAI,GAC9B,MAAM,KAAK,wBAAuB;AAAA,QACpC;AAAA,QAEA,SAAS,CAAAA,MAAS;;AAEhB,gBAAMC,MAAUC,IAAA,KAAK,MAAM,cAAX,gBAAAA,EAAsB,QAAO,KAAK;AAClD,UAAI,KAAK,QAAQD,KAAW,CAACA,EAAQ,SAASD,EAAM,MAAM,MACxDA,EAAM,eAAc,GACpB,KAAK,kBAAkBC,CAAO;AAAA,QAElC;AAAA;IAEJ;AAAA,IAEA,OAAQ;AACN,aAAO,GAAG,CAAC,KAAK,IAAI;AAAA,IACtB;AAAA,IAEA,gBAAiB;AACf,aAAO,CAAC,CAAC,KAAK,OAAO;AAAA,IACvB;AAAA,IAEA,kBAAmB;AACjB,aAAOL,EAAmB,KAAK,UAAU;AAAA,IAC3C;AAAA,IAEA,mBAAoB;AAClB,aAAO,KAAK,KAAK,GAAG,uBAAuB;AAAA,IAC7C;AAAA;EAGF,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,QAASO,GAAW;;AAClB,YAAIA,GAAW;AAEb,eAAK,wBAAwB,SAAS;AACtC,gBAAMF,MAAUC,IAAA,KAAK,MAAM,cAAX,gBAAAA,EAAsB,QAAO,KAAK;AAClD,UAAAE,EAAqBC,EAAcJ,CAAO,EAAE,YAAW,EAAG,IAAI;AAAA,QAChE,OAAO;AACL,gBAAMA,MAAUK,IAAA,KAAK,MAAM,cAAX,gBAAAA,EAAsB,QAAO,KAAK;AAClD,UAAAC,EAAoBF,EAAcJ,CAAO,EAAE,YAAW,EAAG,IAAI,IAE7DO,IAAA,KAAK,0BAAL,QAAAA,EAA4B,SAC5B,KAAK,wBAAwB;AAAA,QAC/B;AAAA,MACF;AAAA;;EAIJ,SAAS;AAAA,IACP,QAAS;AACP,WAAK,MAAM,eAAe,EAAK;AAAA,IACjC;AAAA,IAEA,MAAM,0BAA2B;;AAC/B,YAAMP,MAAUC,IAAA,KAAK,MAAM,cAAX,gBAAAA,EAAsB,QAAO,KAAK;AAClD,MAAI,KAAK,wBAAwB,UAC/B,MAAM,KAAK,kBAAkBD,CAAO,IAC3B,KAAK,oBAAoB,WAAW,GAAG,IAChD,MAAM,KAAK,iBAAiB,KAAK,mBAAmB,IAC3C,KAAK,+BAA+B,eAC7C,KAAK,oBAAoB,MAAK;AAAA,IAElC;AAAA,IAEA,UAAW,GAAG;;AACZ,UAAI,KAAK,MAAM;AACb,cAAMA,MAAUC,IAAA,KAAK,MAAM,cAAX,gBAAAA,EAAsB,QAAO,KAAK;AAClD,aAAK,qBAAqB,GAAGD,CAAO;AAAA,MACtC;AAAA,IACF;AAAA,IAEA,iBAAkBD,GAAO;;AAEvB,YAAMS,IAAiBT,EAAM,QACvBC,MAAUC,IAAA,KAAK,MAAM,cAAX,gBAAAA,EAAsB,QAAO,KAAK,KAC5CQ,IAAoB,KAAK,sBAAsBT,CAAO;AAG5D,MAAIS,EAAkB,UAAU,CAACA,EAAkB,SAASD,CAAc,MAEnEC,EAAkB,SAAS,SAAS,aAAa,KACpD,KAAK,kBAAkBT,CAAO;AAAA,IAGpC;AAAA;AAEJ;;EAjZY,OAAM;;;;cAxFhBU,EAqHWC,GAAA;AAAA,IApHR,WAAWC,EAAA;AAAA,IACX,IAAIA,EAAA;AAAA;IAELC,EAgHeC,GAhHfC,EAgHe;AAAA,MA/Gb,KAAI;AAAA,MACJ,YAAW;AAAA,MACV,MAAMH,EAAA;AAAA,MACN,OAAK;AAAA;QAA+BI,EAAA,qBAAqBJ,EAAA,IAAI;AAAA,QAAWI,EAAA,qBAAqBJ,EAAA,IAAI;AAAA,QAAWA,EAAA;AAAA;MAM7G,WAAQ;AAAA,MACP,eAAaK,EAAA;AAAA,IACd,GAAAC,EAAqBD,EAAf,cAAc,CAAA,GAAA;AAAA,iBAEpB,MAaM;AAAA,QAZEL,EAAA,SAASI,EAAA,eAAeG,SAAO,MAAM,KAAKP,EAAA,qBADlDQ,EAaM,OAAA;AAAA;UAXJ,WAAQ;AAAA,UACP,OAAKC,EAAA;AAAA;YAA2CT,EAAA;AAAA,YAAuBK,EAAA;AAAA;;UAOxEK,EAEOH,wBAFP,MAEO;AAAA,gBADFP,EAAA,WAAW,GAAA,CAAA;AAAA;;QAGlBC,EAmFaU,GAAA;AAAA,UAlFX,QAAA;AAAA,UACA,MAAK;AAAA;qBAEL,MA8EM;AAAA,cA9ENC,EA8EM,OAAA;AAAA,cA5EH,OAAKH,EAAA;AAAA;iDAAgFT,EAAA,kBAAiB;AAAA,gBAAgBA,EAAA;AAAA;cAKvH,MAAK;AAAA,cACL,cAAW;AAAA,cACV,oBAAkBA,EAAA;AAAA,cAClB,mBAAiBA,EAAA;AAAA;cAGVI,EAAA,eAAeG,EAAA,OAAO,MAAM,UADpCC,EAQM,OAAA;AAAA;gBANH,IAAIR,EAAA;AAAA,gBACL,OAAM;AAAA,gBACN,WAAQ;AAAA;gBAGRU,EAAsBH,EAAA,QAAA,QAAA;AAAA,gCAExBC,EAOK,MAAA;AAAA;gBALF,IAAIR,EAAA;AAAA,gBACL,OAAM;AAAA,gBACN,WAAQ;AAAA,mBAELA,EAAA,KAAK,GAAA,GAAAa,CAAA;AAAA,cAGFT,EAAA,eAAeG,EAAA,OAAO,OAAO,UADrCC,EAUM,OAAA;AAAA;gBARH,OAAKC,EAAA;AAAA;kBAAoDT,EAAA;AAAA;gBAI1D,WAAQ;AAAA;gBAGRU,EAAQH,EAAA,QAAA,SAAA;AAAA,6BAEVC,EASI,KAAA;AAAA;gBAPD,OAAKC,EAAA;AAAA;kBAAoDT,EAAA;AAAA;gBAI1D,WAAQ;AAAA,mBAELA,EAAA,IAAI,GAAA,CAAA;AAAA,cAGDK,EAAA,iBADRS,KAAAN,EAMS,UANTO,GAMS;AAAA,gBADPL,EAAsBH,EAAA,QAAA,QAAA;AAAA;cAGhBP,EAAA,kBADRF,EAGEkB,GAAA;AAAA;gBADC,SAAOX,EAAA;AAAA,gDAEVP,EAgBYmB,GAAA;AAAA;gBAdV,OAAM;AAAA,gBACN,WAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,MAAK;AAAA,gBACL,YAAW;AAAA,gBACV,cAAYZ,EAAA;AAAA,gBACZ,OAAOA,EAAA;AAAA,gBACP,SAAOA,EAAA;AAAA;gBAEG,MAAIa,EACb,CAEE,EAHe,UAAAC,QAAQ;AAAA,kBACzBlB,EAEEmB,GAAA,EADC,MAAMD,EAAQ,GAAA,MAAA,GAAA,CAAA,MAAA,CAAA;AAAA;;;;kBAzEbnB,EAAA,IAAI;AAAA;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"modal.js","sources":["../../../components/modal/modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo\"\n :to=\"appendTo\"\n >\n <dt-lazy-show\n ref=\"modalRoot\"\n transition=\"d-zoom\"\n :show=\"show\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n MODAL_SIZE_MODIFIERS[size],\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-hidden=\"open\"\n v-bind=\"modeAttrs\"\n v-on=\"modalListeners\"\n >\n <div\n v-if=\"show && (hasSlotContent($slots.banner) || bannerTitle)\"\n data-qa=\"dt-modal-banner\"\n :class=\"[\n 'd-modal__banner',\n bannerClass,\n bannerKindClass,\n ]\"\n >\n <!-- @slot Slot for the banner, defaults to bannerTitle prop -->\n <slot name=\"banner\">\n {{ bannerTitle }}\n </slot>\n </div>\n <transition\n appear\n name=\"d-modal__dialog\"\n >\n <div\n v-show=\"show\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-describedby=\"describedById\"\n :aria-labelledby=\"labelledById\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"title\" text prop -->\n <slot name=\"header\" />\n </div>\n <dt-text\n v-else\n :id=\"labelledById\"\n kind=\"headline\"\n :size=\"600\"\n strength=\"medium\"\n density=\"100\"\n text-box-trim=\"start\"\n as=\"h2\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n {{ title }}\n </dt-text>\n <div\n v-if=\"hasSlotContent($slots.default)\"\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n <!-- @slot Default slot for dialog body section, taking the place of any \"copy\" text prop -->\n <slot />\n </div>\n <p\n v-else\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n {{ copy }}\n </p>\n <footer\n v-if=\"hasFooterSlot\"\n class=\"d-modal__footer\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <sr-only-close-button\n v-if=\"hideClose\"\n @close=\"close\"\n />\n <dt-button\n v-else\n class=\"d-modal__close\"\n data-qa=\"dt-modal-close-button\"\n :size=\"300\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon=\"{ iconSize }\">\n <dt-icon-close\n :size=\"iconSize\"\n />\n </template>\n </dt-button>\n </div>\n </transition>\n </dt-lazy-show>\n </teleport>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/button';\nimport { DtText } from '@/components/text';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport Modal from '@/common/mixins/modal';\nimport ModeMixin from '@/common/mixins/mode';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n} from './modal_constants';\nimport { returnFirstEl, getUniqueString, hasSlotContent, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/notice';\nimport { DialtoneLocalization } from '@/localization';\n\n/**\n * Modals focus the user’s attention exclusively on one task or piece of information\n * via a window that sits on top of the page content.\n * @see https://dialtone.dialpad.com/components/modal.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtModal',\n\n components: {\n DtLazyShow,\n DtButton,\n DtText,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [Modal, ModeMixin],\n\n props: {\n /**\n * Body text to display as the modal's main content.\n */\n copy: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-describedby.\n * Recommended only if the dialog content itself isn't enough to give full context,\n * as screen readers should recite the dialog contents by default before any aria-description.\n */\n describedById: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-labelledby.\n */\n labelledById: {\n type: String,\n default: function () { return getUniqueString(); },\n },\n\n /**\n * Whether the modal should be shown.\n * Parent component can sync on this value to control the modal's visibility.\n * @values true, false\n */\n show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Title text to display in the modal header.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Title text to display in the modal banner.\n */\n bannerTitle: {\n type: String,\n default: '',\n },\n\n /**\n * The theme of the modal. kind - default or danger,\n * @values default, danger\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * The size of the modal. size - default or full,\n * @values default, full\n */\n size: {\n type: String,\n default: 'default',\n validator: (s) => Object.keys(MODAL_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Additional class name for the root modal element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n modalClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the dialog element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n dialogClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the content element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Sets the color of the banner.\n * @values base, error, info, success, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validator (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Additional class name for the banner element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n bannerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Hides the close button on the modal\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the modal will close when you click outside of the dialog on the overlay.\n * @values true, false\n */\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Scrollable modal that allows scroll the modal content keeping the header and footer fixed\n * @values true, false\n */\n fixedHeaderFooter: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element that is focused when the modal is opened. This can be an\n * HTMLElement within the modal, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: [String, HTMLElement],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.\n */\n appendTo: {\n type: String,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Native button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Native keydown event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n\n /**\n * The modal will emit a \"false\" boolean value for this event when the user performs a modal-closing action.\n * Parent components can sync on this value to create a 2-way binding to control modal visibility.\n *\n * @event update:show\n * @type {Boolean}\n */\n 'update:show',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n MODAL_BANNER_KINDS,\n EVENT_KEYNAMES,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n modalListeners () {\n return {\n click: event => {\n // Handle backdrop clicks for closing modal\n if (this.closeOnClick && event.target === event.currentTarget) {\n this.close();\n } else if (this.show && event.target !== event.currentTarget) {\n // Ensure focus stays within modal when clicking inside it\n this.handleModalClick(event);\n }\n\n this.$emit('click', event);\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n\n 'after-enter': async () => {\n this.$emit('update:show', true);\n await this.setFocusAfterTransition();\n },\n\n focusin: event => {\n // Ensure focus stays within modal\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.show && modalEl && !modalEl.contains(event.target)) {\n event.preventDefault();\n this.focusFirstElement(modalEl);\n }\n },\n };\n },\n\n open () {\n return `${!this.show}`;\n },\n\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n show: {\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n disableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n } else {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n enableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n },\n\n methods: {\n close () {\n this.$emit('update:show', false);\n },\n\n async setFocusAfterTransition () {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.initialFocusElement === 'first') {\n await this.focusFirstElement(modalEl);\n } else if (this.initialFocusElement.startsWith('#')) {\n await this.focusElementById(this.initialFocusElement);\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n\n trapFocus (e) {\n if (this.show) {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n this.focusTrappedTabPress(e, modalEl);\n }\n },\n\n handleModalClick (event) {\n // Ensure focus stays within modal when clicking inside it\n const clickedElement = event.target;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n const focusableElements = this._getFocusableElements(modalEl);\n\n // If the clicked element is not focusable, ensure focus stays in modal\n if (focusableElements.length && !focusableElements.includes(clickedElement)) {\n // Check if current active element is still within the modal\n if (!focusableElements.includes(document.activeElement)) {\n this.focusFirstElement(modalEl);\n }\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtLazyShow","DtButton","DtText","DtIconClose","SrOnlyCloseButton","Modal","ModeMixin","getUniqueString","k","MODAL_KIND_MODIFIERS","s","MODAL_SIZE_MODIFIERS","kind","NOTICE_KINDS","initialFocusElement","MODAL_BANNER_KINDS","EVENT_KEYNAMES","hasSlotContent","DialtoneLocalization","event","modalEl","_a","isShowing","disableRootScrolling","returnFirstEl","_b","enableRootScrolling","_c","e","clickedElement","focusableElements","_createBlock","_Teleport","$props","_createVNode","_component_dt_lazy_show","_mergeProps","$data","$options","_ctx","_toHandlers","_createElementBlock","_normalizeClass","_renderSlot","_Transition","_createElementVNode","_component_dt_text","_openBlock","_hoisted_3","_component_sr_only_close_button","_component_dt_button","_withCtx","iconSize","_component_dt_icon_close"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("../mode-island/utils.cjs"),M=require("../../mode_constants-DeLSnTcQ.cjs"),b=M.a,i={inverted:"invert"},f={name:"dt-mode-directive",install(O){const o=new WeakMap;O.directive("dt-mode",{mounted(e,r){if(r.value===!1)return;const t=c(r.arg),d=v(e,t);o.set(e,d)},updated(e,r){const t=o.get(e),d=r.value!==r.oldValue,a=c(r.arg),n=a!==(t==null?void 0:t.arg);if(!d&&!n||(m(t),l(e),o.delete(e),r.value===!1))return;const u=v(e,a);o.set(e,u)},unmounted(e){m(o.get(e)),l(e),o.delete(e)}});function c(e){return e?b.includes(e)?e:i[e]?(console.warn(`[DtModeDirective] Invalid mode "${e}". Did you mean "${i[e]}"? Falling back to "${i[e]}".`),i[e]):(console.warn(`[DtModeDirective] Invalid mode "${e}". Valid modes: ${b.join(", ")}. Falling back to "invert".`),"invert"):"invert"}function v(e,r){const t={arg:r,contrastObserver:null,modeObserver:null};if(e.setAttribute("data-dt-contrast",s.getRootContrast()),t.contrastObserver=new MutationObserver(()=>{e.setAttribute("data-dt-contrast",s.getRootContrast())}),t.contrastObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["data-dt-contrast"]}),r==="light"||r==="dark")e.setAttribute("data-dt-mode",r);else{const d=s.findParentMode(e);e.setAttribute("data-dt-mode",s.getOppositeMode(d));const a={attributes:!0,attributeFilter:["data-dt-mode"],subtree:!1};t.modeObserver=new MutationObserver(()=>{const u=s.findParentMode(e);e.setAttribute("data-dt-mode",s.getOppositeMode(u))}),t.modeObserver.observe(document.documentElement,a);let n=e.parentElement;for(;n&&n!==document.documentElement;)t.modeObserver.observe(n,a),n=n.parentElement}return t}function l(e){e.removeAttribute("data-dt-mode"),e.removeAttribute("data-dt-contrast")}function m(e){e&&(e.contrastObserver&&(e.contrastObserver.disconnect(),e.contrastObserver=null),e.modeObserver&&(e.modeObserver.disconnect(),e.modeObserver=null))}}};exports.DtModeDirective=f;exports.default=f;
|
|
2
|
+
//# sourceMappingURL=mode.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.cjs","sources":["../../../directives/mode_directive/mode.js"],"sourcesContent":["import {\n getOppositeMode,\n getRootContrast,\n findParentMode,\n} from '@/components/mode_island/utils';\nimport { CONTENT_MODE_VALUES } from '@/common/mode_constants';\n\nconst VALID_MODES = CONTENT_MODE_VALUES;\n\nconst SUGGESTIONS = {\n inverted: 'invert',\n};\n\n/**\n * v-dt-mode directive — applies a color mode (light, dark, or invert) to an element.\n *\n * Sets `data-dt-mode` and `data-dt-contrast` attributes so descendant token-based\n * styles (`d-fc-primary`, `d-bgc-secondary`, etc.) resolve to the correct palette.\n *\n * @example\n * // Explicit modes\n * <section v-dt-mode:dark>Dark content</section>\n * <section v-dt-mode:light>Light content</section>\n *\n * // Invert nearest parent mode (default when no arg)\n * <section v-dt-mode>Inverted content</section>\n * <section v-dt-mode:invert>Same as above</section>\n *\n * // Dynamic arg\n * <section v-dt-mode:[reactiveMode]>Reactive mode</section>\n *\n * // Disable with false value\n * <section v-dt-mode:dark=\"false\">No mode applied</section>\n */\nexport const DtModeDirective = {\n name: 'dt-mode-directive',\n install (app) {\n const instances = new WeakMap();\n\n app.directive('dt-mode', {\n mounted (el, binding) {\n if (binding.value === false) return;\n const mode = resolveArg(binding.arg);\n const state = applyMode(el, mode);\n instances.set(el, state);\n },\n\n updated (el, binding) {\n const prev = instances.get(el);\n const valueChanged = binding.value !== binding.oldValue;\n const resolvedArg = resolveArg(binding.arg);\n const argChanged = resolvedArg !== prev?.arg;\n if (!valueChanged && !argChanged) return;\n\n cleanup(prev);\n removeAttributes(el);\n instances.delete(el);\n\n if (binding.value === false) return;\n\n const state = applyMode(el, resolvedArg);\n instances.set(el, state);\n },\n\n unmounted (el) {\n cleanup(instances.get(el));\n removeAttributes(el);\n instances.delete(el);\n },\n });\n\n function resolveArg (arg) {\n if (!arg) return 'invert';\n if (VALID_MODES.includes(arg)) return arg;\n if (SUGGESTIONS[arg]) {\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Did you mean \"${SUGGESTIONS[arg]}\"? Falling back to \"${SUGGESTIONS[arg]}\".`,\n );\n return SUGGESTIONS[arg];\n }\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Valid modes: ${VALID_MODES.join(', ')}. Falling back to \"invert\".`,\n );\n return 'invert';\n }\n\n function applyMode (el, mode) {\n const state = {\n arg: mode,\n contrastObserver: null,\n modeObserver: null,\n };\n\n // Set contrast from root\n el.setAttribute('data-dt-contrast', getRootContrast());\n\n // Watch for contrast changes on root\n state.contrastObserver = new MutationObserver(() => {\n el.setAttribute('data-dt-contrast', getRootContrast());\n });\n state.contrastObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-dt-contrast'],\n });\n\n if (mode === 'light' || mode === 'dark') {\n el.setAttribute('data-dt-mode', mode);\n } else {\n // invert mode\n const parentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(parentMode));\n\n // Watch for mode changes on root and ancestors\n const config = {\n attributes: true,\n attributeFilter: ['data-dt-mode'],\n subtree: false,\n };\n\n state.modeObserver = new MutationObserver(() => {\n const currentParentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(currentParentMode));\n });\n\n // Observe root element\n state.modeObserver.observe(document.documentElement, config);\n\n // Observe all ancestor elements for data-dt-mode changes.\n // This includes ancestors that don't yet have the attribute,\n // because a sibling directive may set it after this one mounts\n // (Vue 3 fires child mounted before parent mounted).\n let parent = el.parentElement;\n while (parent && parent !== document.documentElement) {\n state.modeObserver.observe(parent, config);\n parent = parent.parentElement;\n }\n }\n\n return state;\n }\n\n function removeAttributes (el) {\n el.removeAttribute('data-dt-mode');\n el.removeAttribute('data-dt-contrast');\n }\n\n function cleanup (state) {\n if (!state) return;\n if (state.contrastObserver) {\n state.contrastObserver.disconnect();\n state.contrastObserver = null;\n }\n if (state.modeObserver) {\n state.modeObserver.disconnect();\n state.modeObserver = null;\n }\n }\n },\n};\n\nexport default DtModeDirective;\n"],"names":["VALID_MODES","CONTENT_MODE_VALUES","SUGGESTIONS","DtModeDirective","app","instances","el","binding","mode","resolveArg","state","applyMode","prev","valueChanged","resolvedArg","argChanged","cleanup","removeAttributes","arg","getRootContrast","parentMode","findParentMode","getOppositeMode","config","currentParentMode","parent"],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { getRootContrast as l, findParentMode as b, getOppositeMode as f } from "../mode-island/utils.js";
|
|
2
|
+
import { a as M } from "../../mode_constants-C1GFodVj.js";
|
|
3
|
+
const O = M, d = {
|
|
4
|
+
inverted: "invert"
|
|
5
|
+
}, E = {
|
|
6
|
+
name: "dt-mode-directive",
|
|
7
|
+
install(p) {
|
|
8
|
+
const o = /* @__PURE__ */ new WeakMap();
|
|
9
|
+
p.directive("dt-mode", {
|
|
10
|
+
mounted(t, r) {
|
|
11
|
+
if (r.value === !1) return;
|
|
12
|
+
const e = u(r.arg), s = c(t, e);
|
|
13
|
+
o.set(t, s);
|
|
14
|
+
},
|
|
15
|
+
updated(t, r) {
|
|
16
|
+
const e = o.get(t), s = r.value !== r.oldValue, a = u(r.arg), n = a !== (e == null ? void 0 : e.arg);
|
|
17
|
+
if (!s && !n || (m(e), v(t), o.delete(t), r.value === !1)) return;
|
|
18
|
+
const i = c(t, a);
|
|
19
|
+
o.set(t, i);
|
|
20
|
+
},
|
|
21
|
+
unmounted(t) {
|
|
22
|
+
m(o.get(t)), v(t), o.delete(t);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
function u(t) {
|
|
26
|
+
return t ? O.includes(t) ? t : d[t] ? (console.warn(
|
|
27
|
+
`[DtModeDirective] Invalid mode "${t}". Did you mean "${d[t]}"? Falling back to "${d[t]}".`
|
|
28
|
+
), d[t]) : (console.warn(
|
|
29
|
+
`[DtModeDirective] Invalid mode "${t}". Valid modes: ${O.join(", ")}. Falling back to "invert".`
|
|
30
|
+
), "invert") : "invert";
|
|
31
|
+
}
|
|
32
|
+
function c(t, r) {
|
|
33
|
+
const e = {
|
|
34
|
+
arg: r,
|
|
35
|
+
contrastObserver: null,
|
|
36
|
+
modeObserver: null
|
|
37
|
+
};
|
|
38
|
+
if (t.setAttribute("data-dt-contrast", l()), e.contrastObserver = new MutationObserver(() => {
|
|
39
|
+
t.setAttribute("data-dt-contrast", l());
|
|
40
|
+
}), e.contrastObserver.observe(document.documentElement, {
|
|
41
|
+
attributes: !0,
|
|
42
|
+
attributeFilter: ["data-dt-contrast"]
|
|
43
|
+
}), r === "light" || r === "dark")
|
|
44
|
+
t.setAttribute("data-dt-mode", r);
|
|
45
|
+
else {
|
|
46
|
+
const s = b(t);
|
|
47
|
+
t.setAttribute("data-dt-mode", f(s));
|
|
48
|
+
const a = {
|
|
49
|
+
attributes: !0,
|
|
50
|
+
attributeFilter: ["data-dt-mode"],
|
|
51
|
+
subtree: !1
|
|
52
|
+
};
|
|
53
|
+
e.modeObserver = new MutationObserver(() => {
|
|
54
|
+
const i = b(t);
|
|
55
|
+
t.setAttribute("data-dt-mode", f(i));
|
|
56
|
+
}), e.modeObserver.observe(document.documentElement, a);
|
|
57
|
+
let n = t.parentElement;
|
|
58
|
+
for (; n && n !== document.documentElement; )
|
|
59
|
+
e.modeObserver.observe(n, a), n = n.parentElement;
|
|
60
|
+
}
|
|
61
|
+
return e;
|
|
62
|
+
}
|
|
63
|
+
function v(t) {
|
|
64
|
+
t.removeAttribute("data-dt-mode"), t.removeAttribute("data-dt-contrast");
|
|
65
|
+
}
|
|
66
|
+
function m(t) {
|
|
67
|
+
t && (t.contrastObserver && (t.contrastObserver.disconnect(), t.contrastObserver = null), t.modeObserver && (t.modeObserver.disconnect(), t.modeObserver = null));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
export {
|
|
72
|
+
E as DtModeDirective,
|
|
73
|
+
E as default
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode.js","sources":["../../../directives/mode_directive/mode.js"],"sourcesContent":["import {\n getOppositeMode,\n getRootContrast,\n findParentMode,\n} from '@/components/mode_island/utils';\nimport { CONTENT_MODE_VALUES } from '@/common/mode_constants';\n\nconst VALID_MODES = CONTENT_MODE_VALUES;\n\nconst SUGGESTIONS = {\n inverted: 'invert',\n};\n\n/**\n * v-dt-mode directive — applies a color mode (light, dark, or invert) to an element.\n *\n * Sets `data-dt-mode` and `data-dt-contrast` attributes so descendant token-based\n * styles (`d-fc-primary`, `d-bgc-secondary`, etc.) resolve to the correct palette.\n *\n * @example\n * // Explicit modes\n * <section v-dt-mode:dark>Dark content</section>\n * <section v-dt-mode:light>Light content</section>\n *\n * // Invert nearest parent mode (default when no arg)\n * <section v-dt-mode>Inverted content</section>\n * <section v-dt-mode:invert>Same as above</section>\n *\n * // Dynamic arg\n * <section v-dt-mode:[reactiveMode]>Reactive mode</section>\n *\n * // Disable with false value\n * <section v-dt-mode:dark=\"false\">No mode applied</section>\n */\nexport const DtModeDirective = {\n name: 'dt-mode-directive',\n install (app) {\n const instances = new WeakMap();\n\n app.directive('dt-mode', {\n mounted (el, binding) {\n if (binding.value === false) return;\n const mode = resolveArg(binding.arg);\n const state = applyMode(el, mode);\n instances.set(el, state);\n },\n\n updated (el, binding) {\n const prev = instances.get(el);\n const valueChanged = binding.value !== binding.oldValue;\n const resolvedArg = resolveArg(binding.arg);\n const argChanged = resolvedArg !== prev?.arg;\n if (!valueChanged && !argChanged) return;\n\n cleanup(prev);\n removeAttributes(el);\n instances.delete(el);\n\n if (binding.value === false) return;\n\n const state = applyMode(el, resolvedArg);\n instances.set(el, state);\n },\n\n unmounted (el) {\n cleanup(instances.get(el));\n removeAttributes(el);\n instances.delete(el);\n },\n });\n\n function resolveArg (arg) {\n if (!arg) return 'invert';\n if (VALID_MODES.includes(arg)) return arg;\n if (SUGGESTIONS[arg]) {\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Did you mean \"${SUGGESTIONS[arg]}\"? Falling back to \"${SUGGESTIONS[arg]}\".`,\n );\n return SUGGESTIONS[arg];\n }\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Valid modes: ${VALID_MODES.join(', ')}. Falling back to \"invert\".`,\n );\n return 'invert';\n }\n\n function applyMode (el, mode) {\n const state = {\n arg: mode,\n contrastObserver: null,\n modeObserver: null,\n };\n\n // Set contrast from root\n el.setAttribute('data-dt-contrast', getRootContrast());\n\n // Watch for contrast changes on root\n state.contrastObserver = new MutationObserver(() => {\n el.setAttribute('data-dt-contrast', getRootContrast());\n });\n state.contrastObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-dt-contrast'],\n });\n\n if (mode === 'light' || mode === 'dark') {\n el.setAttribute('data-dt-mode', mode);\n } else {\n // invert mode\n const parentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(parentMode));\n\n // Watch for mode changes on root and ancestors\n const config = {\n attributes: true,\n attributeFilter: ['data-dt-mode'],\n subtree: false,\n };\n\n state.modeObserver = new MutationObserver(() => {\n const currentParentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(currentParentMode));\n });\n\n // Observe root element\n state.modeObserver.observe(document.documentElement, config);\n\n // Observe all ancestor elements for data-dt-mode changes.\n // This includes ancestors that don't yet have the attribute,\n // because a sibling directive may set it after this one mounts\n // (Vue 3 fires child mounted before parent mounted).\n let parent = el.parentElement;\n while (parent && parent !== document.documentElement) {\n state.modeObserver.observe(parent, config);\n parent = parent.parentElement;\n }\n }\n\n return state;\n }\n\n function removeAttributes (el) {\n el.removeAttribute('data-dt-mode');\n el.removeAttribute('data-dt-contrast');\n }\n\n function cleanup (state) {\n if (!state) return;\n if (state.contrastObserver) {\n state.contrastObserver.disconnect();\n state.contrastObserver = null;\n }\n if (state.modeObserver) {\n state.modeObserver.disconnect();\n state.modeObserver = null;\n }\n }\n },\n};\n\nexport default DtModeDirective;\n"],"names":["VALID_MODES","CONTENT_MODE_VALUES","SUGGESTIONS","DtModeDirective","app","instances","el","binding","mode","resolveArg","state","applyMode","prev","valueChanged","resolvedArg","argChanged","cleanup","removeAttributes","arg","getRootContrast","parentMode","findParentMode","getOppositeMode","config","currentParentMode","parent"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./mode-island.cjs"),d=require("./mode-island-constants.cjs");exports.DtModeIsland=e.default;exports.DT_MODE_ISLAND_TYPES=d.DT_MODE_ISLAND_TYPES;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|