@dialpad/dialtone-vue 3.209.0 → 3.210.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/mixins/keyboard-list-navigation.cjs +1 -1
- package/dist/common/mixins/keyboard-list-navigation.cjs.map +1 -1
- package/dist/common/mixins/keyboard-list-navigation.js +7 -7
- package/dist/common/mixins/keyboard-list-navigation.js.map +1 -1
- package/dist/component-documentation.json +1 -1
- package/dist/dialtone-vue.cjs +1 -1
- package/dist/dialtone-vue.js +422 -386
- 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 +64 -117
- 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 +185 -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/button/button-constants.cjs +1 -1
- package/dist/lib/button/button-constants.cjs.map +1 -1
- package/dist/lib/button/button-constants.js +23 -19
- 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 +138 -60
- package/dist/lib/button/button.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 +8 -9
- package/dist/lib/callbar-button/callbar-button.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 +47 -47
- package/dist/lib/callbox/callbox.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 +31 -31
- package/dist/lib/combobox-multi-select/combobox-multi-select.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 +33 -33
- 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 +1 -1
- 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 +11 -11
- package/dist/lib/datepicker/datepicker.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 +13 -12
- 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 +2 -2
- package/dist/lib/emoji-picker/emoji-picker.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 +11 -11
- 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 +346 -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 +153 -99
- package/dist/lib/general-row/general-row.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 +1 -1
- 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 +31 -31
- package/dist/lib/grouped-chip/grouped-chip.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 +53 -42
- package/dist/lib/input/input.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/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 +21 -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 +25 -15
- package/dist/lib/list-item/list-item.js.map +1 -1
- package/dist/lib/loader/loader.cjs +13 -1
- package/dist/lib/loader/loader.cjs.map +1 -1
- package/dist/lib/loader/loader.js +31 -20
- package/dist/lib/loader/loader.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 +44 -43
- package/dist/lib/message-input/message-input.js.map +1 -1
- 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/pagination/pagination.cjs +1 -1
- package/dist/lib/pagination/pagination.cjs.map +1 -1
- package/dist/lib/pagination/pagination.js +15 -14
- package/dist/lib/pagination/pagination.js.map +1 -1
- package/dist/lib/popover/popover.cjs +1 -1
- package/dist/lib/popover/popover.cjs.map +1 -1
- package/dist/lib/popover/popover.js +1 -1
- package/dist/lib/popover/popover.js.map +1 -1
- package/dist/lib/progress-circle/index.cjs +2 -0
- package/dist/lib/progress-circle/index.cjs.map +1 -0
- package/dist/lib/progress-circle/index.js +10 -0
- package/dist/lib/progress-circle/index.js.map +1 -0
- package/dist/lib/progress-circle/progress-circle-constants.cjs +2 -0
- package/dist/lib/progress-circle/progress-circle-constants.cjs.map +1 -0
- package/dist/lib/progress-circle/progress-circle-constants.js +25 -0
- package/dist/lib/progress-circle/progress-circle-constants.js.map +1 -0
- package/dist/lib/progress-circle/progress-circle.cjs +2 -0
- package/dist/lib/progress-circle/progress-circle.cjs.map +1 -0
- package/dist/lib/progress-circle/progress-circle.js +136 -0
- package/dist/lib/progress-circle/progress-circle.js.map +1 -0
- package/dist/lib/rich-text-editor/rich-text-editor.cjs +2 -2
- package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +115 -97
- 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 +9 -10
- package/dist/lib/root-layout/root-layout.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 +14 -15
- package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
- package/dist/lib/split-button/split-button-alpha.cjs +1 -1
- package/dist/lib/split-button/split-button-alpha.cjs.map +1 -1
- package/dist/lib/split-button/split-button-alpha.js +51 -28
- package/dist/lib/split-button/split-button-alpha.js.map +1 -1
- package/dist/lib/split-button/split-button.cjs +1 -1
- package/dist/lib/split-button/split-button.cjs.map +1 -1
- package/dist/lib/split-button/split-button.js +235 -89
- package/dist/lib/split-button/split-button.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 +69 -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 +203 -0
- package/dist/lib/text/text.js.map +1 -0
- 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/localization/en-US.cjs +2 -0
- package/dist/localization/en-US.cjs.map +1 -1
- package/dist/localization/en-US.js +2 -0
- package/dist/localization/en-US.js.map +1 -1
- package/dist/localization/es-LA.cjs +1 -1
- package/dist/localization/es-LA.cjs.map +1 -1
- package/dist/localization/es-LA.js +1 -1
- package/dist/localization/es-LA.js.map +1 -1
- package/dist/localization/it-IT.cjs +3 -3
- package/dist/localization/it-IT.cjs.map +1 -1
- package/dist/localization/it-IT.js +3 -3
- package/dist/localization/it-IT.js.map +1 -1
- package/dist/localization/nl-NL.cjs +2 -2
- package/dist/localization/nl-NL.cjs.map +1 -1
- package/dist/localization/nl-NL.js +2 -2
- package/dist/localization/nl-NL.js.map +1 -1
- package/dist/localization/ru-RU.cjs +1 -1
- package/dist/localization/ru-RU.cjs.map +1 -1
- package/dist/localization/ru-RU.js +1 -1
- package/dist/localization/ru-RU.js.map +1 -1
- package/dist/localization/zh-CN.cjs +1 -1
- package/dist/localization/zh-CN.cjs.map +1 -1
- package/dist/localization/zh-CN.js +1 -1
- package/dist/localization/zh-CN.js.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/common/mixins/keyboard_list_navigation.d.ts.map +1 -1
- package/dist/types/common/sr_only_close_button.vue.d.ts +20 -2
- 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 +40 -4
- 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 +20 -2
- package/dist/types/components/button/button.vue.d.ts.map +1 -1
- package/dist/types/components/button/button_constants.d.ts +4 -0
- package/dist/types/components/button/button_constants.d.ts.map +1 -1
- package/dist/types/components/chip/chip.vue.d.ts +20 -2
- package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
- package/dist/types/components/collapsible/collapsible.vue.d.ts +20 -2
- package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox.vue.d.ts +79 -13
- package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +39 -6
- 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 +39 -6
- package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown.vue.d.ts +40 -4
- package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
- package/dist/types/components/filter_pill/filter_pill.vue.d.ts +2016 -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 +80 -8
- package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts +40 -4
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/types/components/input/input.vue.d.ts.map +1 -1
- package/dist/types/components/item_layout/item_layout.vue.d.ts +36 -5
- package/dist/types/components/item_layout/item_layout.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 +39 -6
- package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
- package/dist/types/components/loader/loader.vue.d.ts +1 -32
- package/dist/types/components/loader/loader.vue.d.ts.map +1 -1
- package/dist/types/components/modal/modal.vue.d.ts +40 -4
- 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/notice/notice.vue.d.ts +40 -4
- package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_action.vue.d.ts +40 -4
- package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination.vue.d.ts +20 -2
- package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover.vue.d.ts +40 -4
- package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover_header_footer.vue.d.ts +20 -2
- package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
- package/dist/types/components/progress_circle/index.d.ts +3 -0
- package/dist/types/components/progress_circle/index.d.ts.map +1 -0
- package/dist/types/components/progress_circle/progress_circle.vue.d.ts +70 -0
- package/dist/types/components/progress_circle/progress_circle.vue.d.ts.map +1 -0
- package/dist/types/components/progress_circle/progress_circle_constants.d.ts +23 -0
- package/dist/types/components/progress_circle/progress_circle_constants.d.ts.map +1 -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/mentions/MentionComponent.vue.d.ts +9 -0
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +71 -25
- package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +39 -6
- 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 +61 -6
- package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/variable/variable.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/split_button/split_button-alpha.vue.d.ts +21 -3
- package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button-omega.vue.d.ts +20 -2
- package/dist/types/components/split_button/split_button-omega.vue.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button.vue.d.ts +214 -28
- package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
- package/dist/types/components/tab/tab.vue.d.ts +20 -2
- 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 +73 -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 +40 -4
- package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
- package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +40 -4
- package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
- package/dist/types/components/toast/toast.vue.d.ts +160 -16
- package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +20 -2
- 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 +80 -8
- 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 +80 -8
- 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 +60 -6
- 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 +20 -2
- package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
- package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +198 -30
- package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +124 -12
- 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 +104 -10
- 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 +20 -2
- package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +60 -6
- 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 +60 -6
- 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 +20 -2
- 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 +56 -7
- 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 +110 -31
- 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 +56 -7
- 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 +20 -2
- 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 +80 -8
- 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 +20 -2
- 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 +20 -2
- 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 +107 -30
- 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 +20 -2
- 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 +449 -28
- 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 +378 -3
- package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +378 -3
- package/dist/types/recipes/leftbar/group_row/group_row.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/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts +0 -30
- package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AVATAR_PRESENCE_STATES as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
const
|
|
1
|
+
import { hasSlotContent as o, getUniqueString as A } from "../../common/utils/index.js";
|
|
2
|
+
import { AVATAR_PRESENCE_STATES as m, AVATAR_GROUP_VALIDATOR as h, computeAvatarHex as E, AVATAR_SIZE_MODIFIERS as c, getRandomFamilyVariant as f, AVATAR_PRESENCE_SIZE_MODIFIERS as b, AVATAR_KIND_MODIFIERS as C, AVATAR_VARIANT_COUNT as k, AVATAR_FAMILY_COUNT as O, colorToFamilyVariant as y } from "./avatar-constants.js";
|
|
3
|
+
import { extractInitialsFromName as T } from "./utils.js";
|
|
4
|
+
import { resolveComponent as R, openBlock as r, createBlock as v, resolveDynamicComponent as V, normalizeStyle as N, normalizeClass as l, withCtx as D, createElementVNode as g, createElementBlock as n, renderSlot as S, toDisplayString as u, createCommentVNode as d, mergeProps as L } from "vue";
|
|
5
|
+
import { _ as x } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
|
+
import z from "../presence/presence.js";
|
|
7
|
+
var p;
|
|
8
|
+
const _ = typeof CSS < "u" && ((p = CSS.supports) == null ? void 0 : p.call(CSS, "background", "oklch(0.5 0.1 0)")), F = {
|
|
9
9
|
compatConfig: { MODE: 3 },
|
|
10
10
|
name: "DtAvatar",
|
|
11
|
-
components: { DtPresence:
|
|
11
|
+
components: { DtPresence: z },
|
|
12
12
|
inheritAttrs: !1,
|
|
13
13
|
props: {
|
|
14
14
|
/**
|
|
@@ -17,33 +17,61 @@ const L = {
|
|
|
17
17
|
id: {
|
|
18
18
|
type: String,
|
|
19
19
|
default() {
|
|
20
|
-
return
|
|
20
|
+
return A();
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
/**
|
|
24
|
-
* Pass
|
|
25
|
-
*
|
|
24
|
+
* **Recommended.** Pass a unique identifier (e.g., user ID) to generate consistent,
|
|
25
|
+
* deterministic colors for this avatar. The same seed always produces the same color.
|
|
26
|
+
* This is the preferred approach for most use cases.
|
|
26
27
|
*/
|
|
27
28
|
seed: {
|
|
28
29
|
type: String,
|
|
29
30
|
default: void 0
|
|
30
31
|
},
|
|
31
32
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
33
|
+
* **Advanced.** Avatar color family (1-12). Each family represents a different hue
|
|
34
|
+
* offset from the theme's anchor. Only use this if you need explicit control over
|
|
35
|
+
* the color. For most cases, use `seed` instead.
|
|
36
|
+
* Families: 1=Red, 2=Orange, 3=Amber, 4=Yellow-Green, 5=Green, 6=Teal, 7=Cyan,
|
|
37
|
+
* 8=Blue, 9=Indigo, 10=Purple, 11=Magenta, 12=Pink
|
|
38
|
+
* @values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
|
|
39
|
+
*/
|
|
40
|
+
family: {
|
|
41
|
+
type: Number,
|
|
42
|
+
default: void 0,
|
|
43
|
+
validator: (e) => e >= 1 && e <= O
|
|
44
|
+
},
|
|
45
|
+
/**
|
|
46
|
+
* **Advanced.** Avatar color variant (0-9). Controls lightness/chroma within the family.
|
|
47
|
+
* Only use this if you need explicit control over the color. For most cases, use `seed` instead.
|
|
48
|
+
* 0 = darkest, 9 = lightest. Variants 0-5 have light text, 6-9 have dark text.
|
|
49
|
+
* @values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
|
50
|
+
*/
|
|
51
|
+
variant: {
|
|
52
|
+
type: Number,
|
|
53
|
+
default: void 0,
|
|
54
|
+
validator: (e) => e >= 0 && e < k
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* **Legacy.** Avatar color code for backward compatibility. Converted internally
|
|
58
|
+
* to family/variant. For new code, use `seed` (recommended) or `family`/`variant`.
|
|
59
|
+
* Format: family (1-12) * 100 + variant (0-9) * 10, e.g., '540' = family 5, variant 4.
|
|
34
60
|
*/
|
|
35
61
|
color: {
|
|
36
62
|
type: String,
|
|
37
63
|
default: void 0
|
|
38
64
|
},
|
|
39
65
|
/**
|
|
40
|
-
* The size of the avatar
|
|
41
|
-
*
|
|
66
|
+
* The size of the avatar.
|
|
67
|
+
* T-shirt sizes (xs, sm, md, lg, xl) are deprecated and will be removed in the next major version.
|
|
68
|
+
* Please use the numeric scale instead.
|
|
69
|
+
* @values 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 900, xs, sm, md, lg, xl
|
|
42
70
|
*/
|
|
43
71
|
size: {
|
|
44
|
-
type: String,
|
|
45
|
-
default:
|
|
46
|
-
validator: (e) => Object.keys(
|
|
72
|
+
type: [String, Number],
|
|
73
|
+
default: 300,
|
|
74
|
+
validator: (e) => Object.keys(c).includes(String(e))
|
|
47
75
|
},
|
|
48
76
|
/**
|
|
49
77
|
* Used to customize the avatar container
|
|
@@ -74,8 +102,8 @@ const L = {
|
|
|
74
102
|
*/
|
|
75
103
|
presence: {
|
|
76
104
|
type: String,
|
|
77
|
-
default:
|
|
78
|
-
validator: (e) => Object.values(
|
|
105
|
+
default: m.NONE,
|
|
106
|
+
validator: (e) => Object.values(m).includes(e)
|
|
79
107
|
},
|
|
80
108
|
/**
|
|
81
109
|
* A set of props to be passed into the presence component.
|
|
@@ -86,13 +114,13 @@ const L = {
|
|
|
86
114
|
},
|
|
87
115
|
/**
|
|
88
116
|
* Determines whether to show a group avatar.
|
|
89
|
-
* Limit to 2 digits max, more than 99 will be rendered as
|
|
117
|
+
* Limit to 2 digits max, more than 99 will be rendered as "99+".
|
|
90
118
|
* if the number is 1 or less it would just show the regular avatar as if group had not been set.
|
|
91
119
|
*/
|
|
92
120
|
group: {
|
|
93
121
|
type: Number,
|
|
94
122
|
default: void 0,
|
|
95
|
-
validator: (e) =>
|
|
123
|
+
validator: (e) => h(e)
|
|
96
124
|
},
|
|
97
125
|
/**
|
|
98
126
|
* The text that overlays the avatar
|
|
@@ -124,15 +152,6 @@ const L = {
|
|
|
124
152
|
type: String,
|
|
125
153
|
default: void 0
|
|
126
154
|
},
|
|
127
|
-
/**
|
|
128
|
-
* Icon size to be displayed on the avatar
|
|
129
|
-
* @values 100, 200, 300, 400, 500, 600, 700, 800
|
|
130
|
-
*/
|
|
131
|
-
iconSize: {
|
|
132
|
-
type: String,
|
|
133
|
-
default: "",
|
|
134
|
-
validator: (e) => !e || Object.keys(p).includes(e)
|
|
135
|
-
},
|
|
136
155
|
/**
|
|
137
156
|
* Full name used to extract initials.
|
|
138
157
|
*/
|
|
@@ -155,6 +174,23 @@ const L = {
|
|
|
155
174
|
iconAriaLabel: {
|
|
156
175
|
type: String,
|
|
157
176
|
default: void 0
|
|
177
|
+
},
|
|
178
|
+
/**
|
|
179
|
+
* When true, renders the avatar with a transparent background and no color.
|
|
180
|
+
* Useful for displaying icons that should not have a colored background,
|
|
181
|
+
* such as channel or navigation icons.
|
|
182
|
+
*/
|
|
183
|
+
iconOnly: {
|
|
184
|
+
type: Boolean,
|
|
185
|
+
default: !1
|
|
186
|
+
},
|
|
187
|
+
/**
|
|
188
|
+
* When true, renders the avatar in a desaturated/washed-out state.
|
|
189
|
+
* Use this to indicate that a user is deactivated or inactive.
|
|
190
|
+
*/
|
|
191
|
+
deactivated: {
|
|
192
|
+
type: Boolean,
|
|
193
|
+
default: !1
|
|
158
194
|
}
|
|
159
195
|
},
|
|
160
196
|
emits: [
|
|
@@ -168,39 +204,78 @@ const L = {
|
|
|
168
204
|
],
|
|
169
205
|
data() {
|
|
170
206
|
return {
|
|
171
|
-
AVATAR_SIZE_MODIFIERS:
|
|
172
|
-
AVATAR_KIND_MODIFIERS:
|
|
173
|
-
AVATAR_PRESENCE_SIZE_MODIFIERS:
|
|
174
|
-
AVATAR_ICON_SIZES: _,
|
|
207
|
+
AVATAR_SIZE_MODIFIERS: c,
|
|
208
|
+
AVATAR_KIND_MODIFIERS: C,
|
|
209
|
+
AVATAR_PRESENCE_SIZE_MODIFIERS: b,
|
|
175
210
|
imageLoadedSuccessfully: null,
|
|
176
211
|
formattedInitials: "",
|
|
177
212
|
initializing: !1,
|
|
178
|
-
hasSlotContent: o
|
|
213
|
+
hasSlotContent: o,
|
|
214
|
+
anchorHue: 0
|
|
179
215
|
};
|
|
180
216
|
},
|
|
181
217
|
computed: {
|
|
182
218
|
hasOverlayIcon() {
|
|
183
219
|
return o(this.$slots.overlayIcon);
|
|
184
220
|
},
|
|
221
|
+
isIconType() {
|
|
222
|
+
return o(this.$slots.icon);
|
|
223
|
+
},
|
|
185
224
|
iconDataQa() {
|
|
186
225
|
return "dt-avatar-icon";
|
|
187
226
|
},
|
|
227
|
+
/**
|
|
228
|
+
* Compute family from props, color prop, or random
|
|
229
|
+
*/
|
|
230
|
+
computedFamily() {
|
|
231
|
+
if (this.isIconType) return;
|
|
232
|
+
if (this.family !== void 0) return this.family;
|
|
233
|
+
if (this.color !== void 0) {
|
|
234
|
+
const t = y(this.color);
|
|
235
|
+
if (t) return t.family;
|
|
236
|
+
}
|
|
237
|
+
return f(this.seed).family;
|
|
238
|
+
},
|
|
239
|
+
/**
|
|
240
|
+
* Compute variant from props, color prop, or random
|
|
241
|
+
*/
|
|
242
|
+
computedVariant() {
|
|
243
|
+
if (this.isIconType) return;
|
|
244
|
+
if (this.variant !== void 0) return this.variant;
|
|
245
|
+
if (this.color !== void 0) {
|
|
246
|
+
const t = y(this.color);
|
|
247
|
+
if (t) return t.variant;
|
|
248
|
+
}
|
|
249
|
+
return f(this.seed).variant;
|
|
250
|
+
},
|
|
188
251
|
avatarClasses() {
|
|
189
252
|
return [
|
|
190
253
|
"d-avatar",
|
|
191
254
|
this.$attrs.class,
|
|
192
|
-
|
|
255
|
+
c[this.validatedSize],
|
|
193
256
|
this.avatarClass,
|
|
194
257
|
{
|
|
195
258
|
"d-avatar--group": this.showGroup,
|
|
196
|
-
"d-avatar--group-digits-2": this.showGroup && this.
|
|
197
|
-
"d-avatar--group-digits-3": this.showGroup && this.
|
|
198
|
-
[`d-avatar--color-${this.getColor()}`]: !this.isIconType(),
|
|
259
|
+
"d-avatar--group-digits-2": this.showGroup && String(this.formattedGroup).length === 2,
|
|
260
|
+
"d-avatar--group-digits-3": this.showGroup && String(this.formattedGroup).length >= 3,
|
|
199
261
|
"d-avatar--clickable": this.clickable,
|
|
200
|
-
"d-avatar--presence": this.presence && !this.showGroup
|
|
262
|
+
"d-avatar--presence": this.presence && !this.showGroup,
|
|
263
|
+
"d-avatar--icon-only": this.iconOnly,
|
|
264
|
+
"d-avatar--deactivated": this.deactivated
|
|
201
265
|
}
|
|
202
266
|
];
|
|
203
267
|
},
|
|
268
|
+
/**
|
|
269
|
+
* Compute inline styles for fallback color in browsers that don't support oklch()
|
|
270
|
+
*/
|
|
271
|
+
avatarStyles() {
|
|
272
|
+
const e = this.$attrs.style, t = e != null ? [].concat(e) : [];
|
|
273
|
+
if (!_ && !this.isIconType && this.computedFamily && this.computedVariant !== void 0) {
|
|
274
|
+
const a = E(this.computedFamily, this.computedVariant, this.anchorHue);
|
|
275
|
+
t.push({ "--avatar-color-background": a });
|
|
276
|
+
}
|
|
277
|
+
return t.length > 0 ? t : void 0;
|
|
278
|
+
},
|
|
204
279
|
overlayClasses() {
|
|
205
280
|
return [
|
|
206
281
|
"d-avatar__overlay",
|
|
@@ -209,13 +284,14 @@ const L = {
|
|
|
209
284
|
];
|
|
210
285
|
},
|
|
211
286
|
showGroup() {
|
|
212
|
-
return
|
|
287
|
+
return h(this.group);
|
|
213
288
|
},
|
|
214
289
|
formattedGroup() {
|
|
215
|
-
|
|
290
|
+
const e = String(this.validatedSize);
|
|
291
|
+
return (["xs", "100", "150", "200", "250"].includes(e) ? 2 : 3) === 2 ? this.group > 9 ? "9+" : this.group : this.group > 99 ? "99+" : this.group;
|
|
216
292
|
},
|
|
217
293
|
validatedSize() {
|
|
218
|
-
return this.
|
|
294
|
+
return this.size;
|
|
219
295
|
},
|
|
220
296
|
showImage() {
|
|
221
297
|
return this.imageLoadedSuccessfully !== !1 && this.imageSrc;
|
|
@@ -245,23 +321,28 @@ const L = {
|
|
|
245
321
|
}
|
|
246
322
|
},
|
|
247
323
|
mounted() {
|
|
248
|
-
this.validateProps(), this.setImageListeners();
|
|
324
|
+
this.validateProps(), this.setImageListeners(), _ || this.readAnchorHue();
|
|
249
325
|
},
|
|
250
326
|
methods: {
|
|
251
|
-
isIconType() {
|
|
252
|
-
return o(this.$slots.icon);
|
|
253
|
-
},
|
|
254
327
|
async setImageListeners() {
|
|
255
328
|
await this.$nextTick();
|
|
256
329
|
const e = this.$refs.avatarImage;
|
|
257
330
|
e && (e.addEventListener("load", () => this._loadedImageEventHandler(e), { once: !0 }), e.addEventListener("error", () => this._erroredImageEventHandler(e), { once: !0 }));
|
|
258
331
|
},
|
|
259
332
|
formatInitials() {
|
|
260
|
-
const e =
|
|
261
|
-
|
|
333
|
+
const e = T(this.fullName), t = String(this.validatedSize);
|
|
334
|
+
t === "xs" || t === "100" ? this.formattedInitials = "" : t === "sm" || t === "150" || t === "200" ? this.formattedInitials = e[0] : this.formattedInitials = e;
|
|
262
335
|
},
|
|
263
|
-
|
|
264
|
-
|
|
336
|
+
/**
|
|
337
|
+
* Read the anchor hue from CSS custom property for fallback computation
|
|
338
|
+
*/
|
|
339
|
+
readAnchorHue() {
|
|
340
|
+
try {
|
|
341
|
+
const e = getComputedStyle(document.documentElement).getPropertyValue("--dt-avatar-anchor-hue").trim();
|
|
342
|
+
this.anchorHue = parseFloat(e) || 0;
|
|
343
|
+
} catch {
|
|
344
|
+
this.anchorHue = 0;
|
|
345
|
+
}
|
|
265
346
|
},
|
|
266
347
|
_loadedImageEventHandler(e) {
|
|
267
348
|
this.imageLoadedSuccessfully = !0, e.classList.remove("d-d-none");
|
|
@@ -276,75 +357,79 @@ const L = {
|
|
|
276
357
|
this.clickable && this.$emit("click", e);
|
|
277
358
|
}
|
|
278
359
|
}
|
|
279
|
-
},
|
|
360
|
+
}, P = { class: "d-avatar__canvas-inner" }, w = ["src", "alt"], G = ["aria-label", "data-qa"], H = {
|
|
280
361
|
key: 1,
|
|
281
362
|
class: "d-avatar__overlay-text"
|
|
282
|
-
},
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
"
|
|
286
|
-
};
|
|
287
|
-
function P(e, G, a, M, i, t) {
|
|
288
|
-
const v = C("dt-presence");
|
|
289
|
-
return r(), h(O(a.clickable ? "button" : "div"), {
|
|
363
|
+
}, M = ["aria-label"];
|
|
364
|
+
function q(e, t, a, j, s, i) {
|
|
365
|
+
const I = R("dt-presence");
|
|
366
|
+
return r(), v(V(a.clickable ? "button" : "div"), {
|
|
290
367
|
id: a.id,
|
|
291
|
-
class: l(
|
|
292
|
-
style:
|
|
368
|
+
class: l(i.avatarClasses),
|
|
369
|
+
style: N(i.avatarStyles),
|
|
370
|
+
"data-avatar-family": a.iconOnly ? void 0 : i.computedFamily,
|
|
371
|
+
"data-avatar-variant": a.iconOnly ? void 0 : i.computedVariant,
|
|
293
372
|
"data-qa": "dt-avatar",
|
|
294
|
-
|
|
373
|
+
type: a.clickable ? "button" : void 0,
|
|
374
|
+
onClick: i.handleClick
|
|
295
375
|
}, {
|
|
296
|
-
default:
|
|
297
|
-
|
|
376
|
+
default: D(() => [
|
|
377
|
+
g("div", {
|
|
298
378
|
ref: "canvas",
|
|
299
379
|
class: l([
|
|
300
380
|
a.canvasClass,
|
|
301
381
|
"d-avatar__canvas",
|
|
302
|
-
{ "d-avatar--image-loaded":
|
|
382
|
+
{ "d-avatar--image-loaded": s.imageLoadedSuccessfully }
|
|
303
383
|
])
|
|
304
384
|
}, [
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
}, c(i.formattedInitials), 3))
|
|
385
|
+
g("div", P, [
|
|
386
|
+
i.showImage ? (r(), n("img", {
|
|
387
|
+
key: 0,
|
|
388
|
+
ref: "avatarImage",
|
|
389
|
+
class: "d-avatar__image",
|
|
390
|
+
"data-qa": "dt-avatar-image",
|
|
391
|
+
src: a.imageSrc,
|
|
392
|
+
alt: a.imageAlt
|
|
393
|
+
}, null, 8, w)) : i.isIconType ? (r(), n("div", {
|
|
394
|
+
key: 1,
|
|
395
|
+
class: l([a.iconClass, s.AVATAR_KIND_MODIFIERS.icon]),
|
|
396
|
+
"aria-label": a.clickable ? a.iconAriaLabel : "",
|
|
397
|
+
"data-qa": i.iconDataQa
|
|
398
|
+
}, [
|
|
399
|
+
S(e.$slots, "icon")
|
|
400
|
+
], 10, G)) : (r(), n("span", {
|
|
401
|
+
key: 2,
|
|
402
|
+
class: l([s.AVATAR_KIND_MODIFIERS.initials])
|
|
403
|
+
}, u(s.formattedInitials), 3))
|
|
404
|
+
])
|
|
326
405
|
], 2),
|
|
327
|
-
|
|
406
|
+
i.hasOverlayIcon || a.overlayText ? (r(), n("div", {
|
|
328
407
|
key: 0,
|
|
329
|
-
class: l(
|
|
408
|
+
class: l(i.overlayClasses)
|
|
330
409
|
}, [
|
|
331
|
-
|
|
332
|
-
], 2)) :
|
|
333
|
-
|
|
334
|
-
|
|
410
|
+
i.hasOverlayIcon ? S(e.$slots, "overlayIcon", { key: 0 }) : a.overlayText ? (r(), n("p", H, u(a.overlayText), 1)) : d("", !0)
|
|
411
|
+
], 2)) : d("", !0),
|
|
412
|
+
i.showGroup ? (r(), n("span", {
|
|
413
|
+
key: 1,
|
|
414
|
+
class: "d-avatar__count",
|
|
415
|
+
"data-qa": "dt-avatar-count",
|
|
416
|
+
role: "img",
|
|
417
|
+
"aria-label": `${a.group} participants`
|
|
418
|
+
}, u(i.formattedGroup), 9, M)) : d("", !0),
|
|
419
|
+
a.presence && !i.showGroup && s.AVATAR_PRESENCE_SIZE_MODIFIERS[a.size] ? (r(), v(I, L({
|
|
335
420
|
key: 2,
|
|
336
421
|
presence: a.presence,
|
|
337
422
|
class: [
|
|
338
423
|
"d-avatar__presence",
|
|
339
|
-
|
|
424
|
+
s.AVATAR_PRESENCE_SIZE_MODIFIERS[a.size]
|
|
340
425
|
]
|
|
341
|
-
}, a.presenceProps, { "data-qa": "dt-presence" }), null, 16, ["presence", "class"])) :
|
|
426
|
+
}, a.presenceProps, { "data-qa": "dt-presence" }), null, 16, ["presence", "class"])) : d("", !0)
|
|
342
427
|
]),
|
|
343
428
|
_: 3
|
|
344
|
-
}, 8, ["id", "class", "style", "onClick"]);
|
|
429
|
+
}, 8, ["id", "class", "style", "data-avatar-family", "data-avatar-variant", "type", "onClick"]);
|
|
345
430
|
}
|
|
346
|
-
const
|
|
431
|
+
const J = /* @__PURE__ */ x(F, [["render", q]]);
|
|
347
432
|
export {
|
|
348
|
-
|
|
433
|
+
J as default
|
|
349
434
|
};
|
|
350
435
|
//# sourceMappingURL=avatar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sources":["../../../components/avatar/avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n :style=\"$attrs.style\"\n data-qa=\"dt-avatar\"\n @click=\"handleClick\"\n >\n <div\n ref=\"canvas\"\n :class=\"[\n canvasClass,\n 'd-avatar__canvas',\n { 'd-avatar--image-loaded': imageLoadedSuccessfully },\n ]\"\n >\n <img\n v-if=\"showImage\"\n ref=\"avatarImage\"\n class=\"d-avatar__image\"\n data-qa=\"dt-avatar-image\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n <div\n v-else-if=\"isIconType()\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n :aria-label=\"clickable ? iconAriaLabel : ''\"\n :data-qa=\"iconDataQa\"\n :role=\"clickable ? 'button' : ''\"\n >\n <!-- @slot Slot for avatar icon. It will display if no imageSrc is provided -->\n <slot\n name=\"icon\"\n :icon-size=\"iconSize || AVATAR_ICON_SIZES[size]\"\n />\n </div>\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n <div\n v-if=\"hasOverlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <!-- @slot Slot for overlay icon. -->\n <slot\n v-if=\"hasOverlayIcon\"\n name=\"overlayIcon\"\n />\n <p\n v-else-if=\"overlayText\"\n class=\"d-avatar__overlay-text\"\n >\n {{ overlayText }}\n </p>\n </div>\n <span\n v-if=\"showGroup\"\n class=\"d-avatar__count\"\n data-qa=\"dt-avatar-count\"\n >{{ formattedGroup }}</span>\n <dt-presence\n v-if=\"presence && !showGroup\"\n :presence=\"presence\"\n :class=\"[\n 'd-avatar__presence',\n AVATAR_PRESENCE_SIZE_MODIFIERS[size],\n ]\"\n v-bind=\"presenceProps\"\n data-qa=\"dt-presence\"\n />\n </component>\n</template>\n\n<script>\nimport { getUniqueString, getRandomElement, hasSlotContent } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_RANDOM_COLORS,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_ICON_SIZES,\n} from './avatar_constants';\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon/icon_constants.js';\nimport { extractInitialsFromName } from './utils';\n\n/**\n * An avatar is a visual representation of a user or object.\n * @see https://dialtone.dialpad.com/components/avatar.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtAvatar',\n components: { DtPresence },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Id of the avatar content wrapper element\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Pass in a seed to get the random color generation based on that string. For example if you pass in a\n * user ID as the string it will return the same randomly generated colors every time for that user.\n */\n seed: {\n type: String,\n default: undefined,\n },\n\n /**\n * Set the avatar background to a specific color. If undefined will randomize the color which can be deterministic\n * if the seed prop is set.\n */\n color: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the avatar\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (size) => Object.keys(AVATAR_SIZE_MODIFIERS).includes(size),\n },\n\n /**\n * Used to customize the avatar container\n */\n avatarClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Set classes on the avatar canvas. Wrapper around the core avatar image.\n */\n canvasClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through classes. Used to customize the avatar icon\n */\n iconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: AVATAR_PRESENCE_STATES.NONE,\n validator: (state) => {\n return Object.values(AVATAR_PRESENCE_STATES).includes(state);\n },\n },\n\n /**\n * A set of props to be passed into the presence component.\n */\n presenceProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Determines whether to show a group avatar.\n * Limit to 2 digits max, more than 99 will be rendered as “99+”.\n * if the number is 1 or less it would just show the regular avatar as if group had not been set.\n */\n group: {\n type: Number,\n default: undefined,\n validator: (group) => AVATAR_GROUP_VALIDATOR(group),\n },\n\n /**\n * The text that overlays the avatar\n */\n overlayText: {\n type: String,\n default: '',\n },\n\n /**\n * Used to customize the avatar overlay\n */\n overlayClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Source of the image\n */\n imageSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Alt attribute of the image, required if imageSrc is provided.\n * Can be set to '' (empty string) if the image is described\n * in text nearby\n */\n imageAlt: {\n type: String,\n default: undefined,\n },\n\n /**\n * Icon size to be displayed on the avatar\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n iconSize: {\n type: String,\n default: '',\n validator: (size) => !size || Object.keys(ICON_SIZE_MODIFIERS).includes(size),\n },\n\n /**\n * Full name used to extract initials.\n */\n fullName: {\n type: String,\n default: '',\n },\n\n /**\n * Makes the avatar focusable and clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the icon.\n * To avoid a11y issues, set this prop if clickable and iconName are set.\n */\n iconAriaLabel: {\n type: String,\n default: undefined,\n },\n },\n\n emits: [\n /**\n * Avatar click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_ICON_SIZES,\n imageLoadedSuccessfully: null,\n formattedInitials: '',\n initializing: false,\n hasSlotContent,\n };\n },\n\n computed: {\n hasOverlayIcon () {\n return hasSlotContent(this.$slots.overlayIcon);\n },\n\n iconDataQa () {\n return 'dt-avatar-icon';\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n this.$attrs.class,\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n 'd-avatar--group-digits-2': this.showGroup && this.group > 9 && this.group < 100,\n 'd-avatar--group-digits-3': this.showGroup && this.group > 99,\n [`d-avatar--color-${this.getColor()}`]: !this.isIconType(),\n 'd-avatar--clickable': this.clickable,\n 'd-avatar--presence': this.presence && !this.showGroup,\n },\n ];\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n { 'd-avatar__overlay-icon': this.hasOverlayIcon },\n ];\n },\n\n showGroup () {\n return AVATAR_GROUP_VALIDATOR(this.group);\n },\n\n formattedGroup () {\n return this.group > 99 ? '99+' : this.group;\n },\n\n validatedSize () {\n // TODO: Group only supports xs size for now. Remove this when we support other sizes.\n return this.group ? 'xs' : this.size;\n },\n\n showImage () {\n return this.imageLoadedSuccessfully !== false && this.imageSrc;\n },\n },\n\n watch: {\n fullName: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n size: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n group: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n imageSrc (newSrc) {\n this.imageLoadedSuccessfully = null;\n if (!newSrc) return;\n\n this.validateProps();\n this.setImageListeners();\n },\n },\n\n mounted () {\n this.validateProps();\n this.setImageListeners();\n },\n\n methods: {\n isIconType () {\n return hasSlotContent(this.$slots.icon);\n },\n\n async setImageListeners () {\n await this.$nextTick();\n const el = this.$refs.avatarImage;\n if (!el) return;\n\n el.addEventListener('load', () => this._loadedImageEventHandler(el), { once: true });\n el.addEventListener('error', () => this._erroredImageEventHandler(el), { once: true });\n },\n\n formatInitials () {\n const initials = extractInitialsFromName(this.fullName);\n\n if (this.validatedSize === 'xs') {\n this.formattedInitials = '';\n } else if (this.validatedSize === 'sm') {\n this.formattedInitials = initials[0];\n } else {\n this.formattedInitials = initials;\n }\n },\n\n getColor () {\n return this.color ?? getRandomElement(AVATAR_RANDOM_COLORS, this.seed);\n },\n\n _loadedImageEventHandler (el) {\n this.imageLoadedSuccessfully = true;\n el.classList.remove('d-d-none');\n },\n\n _erroredImageEventHandler (el) {\n this.imageLoadedSuccessfully = false;\n el.classList.add('d-d-none');\n },\n\n validateProps () {\n if (this.imageSrc && this.imageAlt === undefined) {\n console.error('image-alt required if image-src is provided. Can be set to \"\" (empty string) if the image is described in text nearby');\n }\n },\n\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtPresence","getUniqueString","size","AVATAR_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","state","group","AVATAR_GROUP_VALIDATOR","ICON_SIZE_MODIFIERS","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","AVATAR_ICON_SIZES","hasSlotContent","newSrc","el","initials","extractInitialsFromName","getRandomElement","AVATAR_RANDOM_COLORS","_openBlock","_createBlock","_resolveDynamicComponent","$props","$options","_normalizeStyle","_ctx","_createElementVNode","_normalizeClass","$data","_createElementBlock","_renderSlot","_hoisted_3","_toDisplayString","_hoisted_4","_component_dt_presence","_mergeProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avatar.js","sources":["../../../components/avatar/avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"clickable ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n :style=\"avatarStyles\"\n :data-avatar-family=\"!iconOnly ? computedFamily : undefined\"\n :data-avatar-variant=\"!iconOnly ? computedVariant : undefined\"\n data-qa=\"dt-avatar\"\n :type=\"clickable ? 'button' : undefined\"\n @click=\"handleClick\"\n >\n <div\n ref=\"canvas\"\n :class=\"[\n canvasClass,\n 'd-avatar__canvas',\n { 'd-avatar--image-loaded': imageLoadedSuccessfully },\n ]\"\n >\n <div class=\"d-avatar__canvas-inner\">\n <img\n v-if=\"showImage\"\n ref=\"avatarImage\"\n class=\"d-avatar__image\"\n data-qa=\"dt-avatar-image\"\n :src=\"imageSrc\"\n :alt=\"imageAlt\"\n >\n <div\n v-else-if=\"isIconType\"\n :class=\"[iconClass, AVATAR_KIND_MODIFIERS.icon]\"\n :aria-label=\"clickable ? iconAriaLabel : ''\"\n :data-qa=\"iconDataQa\"\n >\n <!-- @slot Slot for avatar icon. It will display if no imageSrc is provided -->\n <slot name=\"icon\" />\n </div>\n <span\n v-else\n :class=\"[AVATAR_KIND_MODIFIERS.initials]\"\n >\n {{ formattedInitials }}\n </span>\n </div>\n </div>\n <div\n v-if=\"hasOverlayIcon || overlayText\"\n :class=\"overlayClasses\"\n >\n <!-- @slot Slot for overlay icon. -->\n <slot\n v-if=\"hasOverlayIcon\"\n name=\"overlayIcon\"\n />\n <p\n v-else-if=\"overlayText\"\n class=\"d-avatar__overlay-text\"\n >\n {{ overlayText }}\n </p>\n </div>\n <span\n v-if=\"showGroup\"\n class=\"d-avatar__count\"\n data-qa=\"dt-avatar-count\"\n role=\"img\"\n :aria-label=\"`${group} participants`\"\n >{{ formattedGroup }}</span>\n <dt-presence\n v-if=\"presence && !showGroup && AVATAR_PRESENCE_SIZE_MODIFIERS[size]\"\n :presence=\"presence\"\n :class=\"[\n 'd-avatar__presence',\n AVATAR_PRESENCE_SIZE_MODIFIERS[size],\n ]\"\n v-bind=\"presenceProps\"\n data-qa=\"dt-presence\"\n />\n </component>\n</template>\n\n<script>\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DtPresence } from '../presence';\nimport {\n AVATAR_KIND_MODIFIERS,\n AVATAR_SIZE_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_GROUP_VALIDATOR,\n AVATAR_FAMILY_COUNT,\n AVATAR_VARIANT_COUNT,\n colorToFamilyVariant,\n getRandomFamilyVariant,\n computeAvatarHex,\n} from './avatar_constants';\nimport { extractInitialsFromName } from './utils';\n\n// Check if browser supports oklch() - only compute hex fallback if not\nconst supportsOklch = typeof CSS !== 'undefined' && CSS.supports?.('background', 'oklch(0.5 0.1 0)');\n\n/**\n * An avatar is a visual representation of a user or object.\n * @see https://dialtone.dialpad.com/components/avatar.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtAvatar',\n components: { DtPresence },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Id of the avatar content wrapper element\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * **Recommended.** Pass a unique identifier (e.g., user ID) to generate consistent,\n * deterministic colors for this avatar. The same seed always produces the same color.\n * This is the preferred approach for most use cases.\n */\n seed: {\n type: String,\n default: undefined,\n },\n\n /**\n * **Advanced.** Avatar color family (1-12). Each family represents a different hue\n * offset from the theme's anchor. Only use this if you need explicit control over\n * the color. For most cases, use `seed` instead.\n * Families: 1=Red, 2=Orange, 3=Amber, 4=Yellow-Green, 5=Green, 6=Teal, 7=Cyan,\n * 8=Blue, 9=Indigo, 10=Purple, 11=Magenta, 12=Pink\n * @values 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\n */\n family: {\n type: Number,\n default: undefined,\n validator: (val) => val >= 1 && val <= AVATAR_FAMILY_COUNT,\n },\n\n /**\n * **Advanced.** Avatar color variant (0-9). Controls lightness/chroma within the family.\n * Only use this if you need explicit control over the color. For most cases, use `seed` instead.\n * 0 = darkest, 9 = lightest. Variants 0-5 have light text, 6-9 have dark text.\n * @values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n */\n variant: {\n type: Number,\n default: undefined,\n validator: (val) => val >= 0 && val < AVATAR_VARIANT_COUNT,\n },\n\n /**\n * **Legacy.** Avatar color code for backward compatibility. Converted internally\n * to family/variant. For new code, use `seed` (recommended) or `family`/`variant`.\n * Format: family (1-12) * 100 + variant (0-9) * 10, e.g., '540' = family 5, variant 4.\n */\n color: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the avatar.\n * T-shirt sizes (xs, sm, md, lg, xl) are deprecated and will be removed in the next major version.\n * Please use the numeric scale instead.\n * @values 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 900, xs, sm, md, lg, xl\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: (size) => Object.keys(AVATAR_SIZE_MODIFIERS).includes(String(size)),\n },\n\n /**\n * Used to customize the avatar container\n */\n avatarClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Set classes on the avatar canvas. Wrapper around the core avatar image.\n */\n canvasClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through classes. Used to customize the avatar icon\n */\n iconClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active\n */\n presence: {\n type: String,\n default: AVATAR_PRESENCE_STATES.NONE,\n validator: (state) => {\n return Object.values(AVATAR_PRESENCE_STATES).includes(state);\n },\n },\n\n /**\n * A set of props to be passed into the presence component.\n */\n presenceProps: {\n type: Object,\n default: () => ({}),\n },\n\n /**\n * Determines whether to show a group avatar.\n * Limit to 2 digits max, more than 99 will be rendered as \"99+\".\n * if the number is 1 or less it would just show the regular avatar as if group had not been set.\n */\n group: {\n type: Number,\n default: undefined,\n validator: (group) => AVATAR_GROUP_VALIDATOR(group),\n },\n\n /**\n * The text that overlays the avatar\n */\n overlayText: {\n type: String,\n default: '',\n },\n\n /**\n * Used to customize the avatar overlay\n */\n overlayClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Source of the image\n */\n imageSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Alt attribute of the image, required if imageSrc is provided.\n * Can be set to '' (empty string) if the image is described\n * in text nearby\n */\n imageAlt: {\n type: String,\n default: undefined,\n },\n\n /**\n * Full name used to extract initials.\n */\n fullName: {\n type: String,\n default: '',\n },\n\n /**\n * Makes the avatar focusable and clickable,\n * emits a click event when clicked.\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the icon.\n * To avoid a11y issues, set this prop if clickable and iconName are set.\n */\n iconAriaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * When true, renders the avatar with a transparent background and no color.\n * Useful for displaying icons that should not have a colored background,\n * such as channel or navigation icons.\n */\n iconOnly: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, renders the avatar in a desaturated/washed-out state.\n * Use this to indicate that a user is deactivated or inactive.\n */\n deactivated: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Avatar click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n data () {\n return {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n imageLoadedSuccessfully: null,\n formattedInitials: '',\n initializing: false,\n hasSlotContent,\n anchorHue: 0,\n };\n },\n\n computed: {\n hasOverlayIcon () {\n return hasSlotContent(this.$slots.overlayIcon);\n },\n\n isIconType () {\n return hasSlotContent(this.$slots.icon);\n },\n\n iconDataQa () {\n return 'dt-avatar-icon';\n },\n\n /**\n * Compute family from props, color prop, or random\n */\n computedFamily () {\n // Icon-type avatars don't use color\n if (this.isIconType) return undefined;\n\n // Explicit family prop takes precedence\n if (this.family !== undefined) return this.family;\n\n // Color prop (converted to family/variant)\n if (this.color !== undefined) {\n const parsed = colorToFamilyVariant(this.color);\n if (parsed) return parsed.family;\n }\n\n // Random based on seed\n const random = getRandomFamilyVariant(this.seed);\n return random.family;\n },\n\n /**\n * Compute variant from props, color prop, or random\n */\n computedVariant () {\n // Icon-type avatars don't use color\n if (this.isIconType) return undefined;\n\n // Explicit variant prop takes precedence\n if (this.variant !== undefined) return this.variant;\n\n // Color prop (converted to family/variant)\n if (this.color !== undefined) {\n const parsed = colorToFamilyVariant(this.color);\n if (parsed) return parsed.variant;\n }\n\n // Random based on seed\n const random = getRandomFamilyVariant(this.seed);\n return random.variant;\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\n this.$attrs.class,\n AVATAR_SIZE_MODIFIERS[this.validatedSize],\n this.avatarClass,\n {\n 'd-avatar--group': this.showGroup,\n 'd-avatar--group-digits-2': this.showGroup && String(this.formattedGroup).length === 2,\n 'd-avatar--group-digits-3': this.showGroup && String(this.formattedGroup).length >= 3,\n 'd-avatar--clickable': this.clickable,\n 'd-avatar--presence': this.presence && !this.showGroup,\n 'd-avatar--icon-only': this.iconOnly,\n 'd-avatar--deactivated': this.deactivated,\n },\n ];\n },\n\n /**\n * Compute inline styles for fallback color in browsers that don't support oklch()\n */\n avatarStyles () {\n // $attrs.style can be object, string, or array — normalize to an array for merging\n const attrStyle = this.$attrs.style;\n const baseStyles = attrStyle != null ? [].concat(attrStyle) : [];\n\n // Only compute hex fallback for browsers that don't support oklch()\n if (!supportsOklch && !this.isIconType && this.computedFamily && this.computedVariant !== undefined) {\n const fallbackHex = computeAvatarHex(this.computedFamily, this.computedVariant, this.anchorHue);\n baseStyles.push({ '--avatar-color-background': fallbackHex });\n }\n\n return baseStyles.length > 0 ? baseStyles : undefined;\n },\n\n overlayClasses () {\n return [\n 'd-avatar__overlay',\n this.overlayClass,\n { 'd-avatar__overlay-icon': this.hasOverlayIcon },\n ];\n },\n\n showGroup () {\n return AVATAR_GROUP_VALIDATOR(this.group);\n },\n\n formattedGroup () {\n const size = String(this.validatedSize);\n // Sizes 100-250 cap at 2 digits — too small for 3\n const smallSizes = ['xs', '100', '150', '200', '250'];\n const maxDigits = smallSizes.includes(size) ? 2 : 3;\n if (maxDigits === 2) {\n return this.group > 9 ? '9+' : this.group;\n }\n return this.group > 99 ? '99+' : this.group;\n },\n\n validatedSize () {\n return this.size;\n },\n\n showImage () {\n return this.imageLoadedSuccessfully !== false && this.imageSrc;\n },\n },\n\n watch: {\n fullName: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n size: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n group: {\n immediate: true,\n handler () {\n this.formatInitials();\n },\n },\n\n imageSrc (newSrc) {\n this.imageLoadedSuccessfully = null;\n if (!newSrc) return;\n\n this.validateProps();\n this.setImageListeners();\n },\n },\n\n mounted () {\n this.validateProps();\n this.setImageListeners();\n // Only read anchor hue for fallback computation in browsers without oklch() support\n if (!supportsOklch) {\n this.readAnchorHue();\n }\n },\n\n methods: {\n async setImageListeners () {\n await this.$nextTick();\n const el = this.$refs.avatarImage;\n if (!el) return;\n\n el.addEventListener('load', () => this._loadedImageEventHandler(el), { once: true });\n el.addEventListener('error', () => this._erroredImageEventHandler(el), { once: true });\n },\n\n formatInitials () {\n const initials = extractInitialsFromName(this.fullName);\n const size = String(this.validatedSize);\n\n // xs/100 are too small for initials\n if (size === 'xs' || size === '100') {\n this.formattedInitials = '';\n // sm/150/200 show single initial\n } else if (size === 'sm' || size === '150' || size === '200') {\n this.formattedInitials = initials[0];\n } else {\n this.formattedInitials = initials;\n }\n },\n\n /**\n * Read the anchor hue from CSS custom property for fallback computation\n */\n readAnchorHue () {\n try {\n const hueValue = getComputedStyle(document.documentElement)\n .getPropertyValue('--dt-avatar-anchor-hue')\n .trim();\n this.anchorHue = parseFloat(hueValue) || 0;\n } catch {\n this.anchorHue = 0;\n }\n },\n\n _loadedImageEventHandler (el) {\n this.imageLoadedSuccessfully = true;\n el.classList.remove('d-d-none');\n },\n\n _erroredImageEventHandler (el) {\n this.imageLoadedSuccessfully = false;\n el.classList.add('d-d-none');\n },\n\n validateProps () {\n if (this.imageSrc && this.imageAlt === undefined) {\n console.error('image-alt required if image-src is provided. Can be set to \"\" (empty string) if the image is described in text nearby');\n }\n },\n\n handleClick (e) {\n if (!this.clickable) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n"],"names":["supportsOklch","_a","_sfc_main","DtPresence","getUniqueString","val","AVATAR_FAMILY_COUNT","AVATAR_VARIANT_COUNT","size","AVATAR_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","state","group","AVATAR_GROUP_VALIDATOR","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","hasSlotContent","parsed","colorToFamilyVariant","getRandomFamilyVariant","attrStyle","baseStyles","fallbackHex","computeAvatarHex","newSrc","el","initials","extractInitialsFromName","hueValue","_hoisted_1","_openBlock","_createBlock","_resolveDynamicComponent","$props","$options","_createElementVNode","_normalizeClass","$data","_createElementBlock","_renderSlot","_ctx","_hoisted_4","_toDisplayString","_hoisted_5","_component_dt_presence","_mergeProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("./avatar.cjs"),A=require("./avatar-constants.cjs");exports.DtAvatar=_.default;exports.AVATAR_CHROMA=A.AVATAR_CHROMA;exports.AVATAR_FAMILY_COUNT=A.AVATAR_FAMILY_COUNT;exports.AVATAR_GROUP_VALIDATOR=A.AVATAR_GROUP_VALIDATOR;exports.AVATAR_HUE_OFFSETS=A.AVATAR_HUE_OFFSETS;exports.AVATAR_ICON_SIZES=A.AVATAR_ICON_SIZES;exports.AVATAR_KIND_MODIFIERS=A.AVATAR_KIND_MODIFIERS;exports.AVATAR_LIGHTNESS=A.AVATAR_LIGHTNESS;exports.AVATAR_PRESENCE_SIZE_MODIFIERS=A.AVATAR_PRESENCE_SIZE_MODIFIERS;exports.AVATAR_PRESENCE_STATES=A.AVATAR_PRESENCE_STATES;exports.AVATAR_SIZE_MODIFIERS=A.AVATAR_SIZE_MODIFIERS;exports.AVATAR_VARIANT_COUNT=A.AVATAR_VARIANT_COUNT;exports.colorToFamilyVariant=A.colorToFamilyVariant;exports.computeAvatarHex=A.computeAvatarHex;exports.getRandomFamilyVariant=A.getRandomFamilyVariant;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/lib/avatar/index.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { default as _ } from "./avatar.js";
|
|
2
|
-
import {
|
|
2
|
+
import { AVATAR_CHROMA as E, AVATAR_FAMILY_COUNT as I, AVATAR_GROUP_VALIDATOR as S, AVATAR_HUE_OFFSETS as V, AVATAR_ICON_SIZES as a, AVATAR_KIND_MODIFIERS as t, AVATAR_LIGHTNESS as O, AVATAR_PRESENCE_SIZE_MODIFIERS as o, AVATAR_PRESENCE_STATES as r, AVATAR_SIZE_MODIFIERS as F, AVATAR_VARIANT_COUNT as N, colorToFamilyVariant as e, computeAvatarHex as m, getRandomFamilyVariant as C } from "./avatar-constants.js";
|
|
3
3
|
export {
|
|
4
|
-
|
|
5
|
-
I as
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
E as AVATAR_CHROMA,
|
|
5
|
+
I as AVATAR_FAMILY_COUNT,
|
|
6
|
+
S as AVATAR_GROUP_VALIDATOR,
|
|
7
|
+
V as AVATAR_HUE_OFFSETS,
|
|
8
|
+
a as AVATAR_ICON_SIZES,
|
|
9
|
+
t as AVATAR_KIND_MODIFIERS,
|
|
10
|
+
O as AVATAR_LIGHTNESS,
|
|
11
|
+
o as AVATAR_PRESENCE_SIZE_MODIFIERS,
|
|
12
|
+
r as AVATAR_PRESENCE_STATES,
|
|
13
|
+
F as AVATAR_SIZE_MODIFIERS,
|
|
14
|
+
N as AVATAR_VARIANT_COUNT,
|
|
15
|
+
_ as DtAvatar,
|
|
16
|
+
e as colorToFamilyVariant,
|
|
17
|
+
m as computeAvatarHex,
|
|
18
|
+
C as getRandomFamilyVariant
|
|
13
19
|
};
|
|
14
20
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/badge/badge.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("./badge-constants.cjs"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("./badge-constants.cjs"),a=require("../../common/utils/index.cjs"),e=require("vue"),l=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),r=require("../icon/icon-constants.cjs"),d={compatConfig:{MODE:3},name:"DtBadge",props:{iconSize:{type:String,default:"200",validator:t=>Object.keys(r.ICON_SIZE_MODIFIERS).includes(t)},text:{type:String,default:""},kind:{type:String,default:"label",validator:t=>Object.keys(n.BADGE_KIND_MODIFIERS).includes(t)},type:{type:String,default:"default",validator:t=>Object.keys(n.BADGE_TYPE_MODIFIERS).includes(t)},decoration:{type:String,default:void 0,validator:t=>Object.keys(n.BADGE_DECORATION_MODIFIERS).includes(t)},labelClass:{type:[String,Array,Object],default:""},subtle:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1}},data(){return{BADGE_TYPE_MODIFIERS:n.BADGE_TYPE_MODIFIERS,BADGE_KIND_MODIFIERS:n.BADGE_KIND_MODIFIERS,BADGE_DECORATION_MODIFIERS:n.BADGE_DECORATION_MODIFIERS}},computed:{hasLeftIcon(){return a.hasSlotContent(this.$slots.startIcon)||a.hasSlotContent(this.$slots.leftIcon)},hasRightIcon(){return a.hasSlotContent(this.$slots.endIcon)||a.hasSlotContent(this.$slots.rightIcon)},hasIcons(){return this.hasLeftIcon||this.hasRightIcon}},updated(){this.validateProps()},methods:{validateProps(){this.validateTypePropCombination(),this.validateDecorationPropCombination()},validateTypePropCombination(){this.type==="ai"&&this.kind==="count"&&console.error("DtBadge error: type: 'ai' with kind: 'count' is an invalid combination."),this.type!=="bulletin"&&this.subtle&&console.error("DtBadge error: subtle can only be used with type 'bulletin'")},validateDecorationPropCombination(){this.decoration&&((this.kind!=="label"||this.type!=="default")&&console.error("DtBadge error: decoration prop can only be used with kind: 'label' and type: 'default'."),this.hasIcons&&console.error("DtBadge error: decoration prop cannot be used with startIcon or endIcon."))}}},c={key:0,class:"d-badge__decorative"},u={key:1,class:"d-badge__icon-left"},I={key:2,class:"d-badge__icon-right"};function _(t,D,o,S,i,s){return e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["d-badge",i.BADGE_TYPE_MODIFIERS[o.type],i.BADGE_KIND_MODIFIERS[o.kind],i.BADGE_DECORATION_MODIFIERS[o.decoration],{"d-badge--subtle":o.subtle},{"d-badge--outlined":o.outlined}]),"data-qa":"dt-badge"},[o.decoration?(e.openBlock(),e.createElementBlock("span",c)):e.createCommentVNode("",!0),s.hasLeftIcon?(e.openBlock(),e.createElementBlock("span",u,[t.$slots.startIcon?e.renderSlot(t.$slots,"startIcon",{key:0,iconSize:o.iconSize}):e.renderSlot(t.$slots,"leftIcon",{key:1,iconSize:o.iconSize})])):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass(["d-badge__label",o.labelClass])},[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(o.text),1)])],2),s.hasRightIcon?(e.openBlock(),e.createElementBlock("span",I,[t.$slots.endIcon?e.renderSlot(t.$slots,"endIcon",{key:0,iconSize:o.iconSize}):e.renderSlot(t.$slots,"rightIcon",{key:1,iconSize:o.iconSize})])):e.createCommentVNode("",!0)],2)}const h=l._(d,[["render",_]]);exports.default=h;
|
|
2
2
|
//# sourceMappingURL=badge.cjs.map
|