@dialpad/dialtone-vue 3.210.0 → 3.211.0-next.1
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 +10 -10
- package/dist/common/constants/index.js.map +1 -1
- 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 +425 -387
- 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 +171 -66
- 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 +13 -14
- 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 +42 -30
- 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 +38 -26
- 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 +47 -47
- package/dist/lib/callbox/callbox.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 +1 -1
- package/dist/lib/chip/chip.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.map +1 -1
- 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 +39 -39
- 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/notice/notice-action.cjs +1 -1
- package/dist/lib/notice/notice-action.cjs.map +1 -1
- package/dist/lib/notice/notice-action.js +7 -7
- package/dist/lib/notice/notice-action.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 +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.map +1 -1
- 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 +86 -33
- 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 +282 -92
- package/dist/lib/split-button/split-button.js.map +1 -1
- package/dist/lib/tab/index.cjs +1 -1
- package/dist/lib/tab/index.js +13 -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 +107 -46
- 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 +128 -37
- 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 +13 -11
- 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 +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 +38 -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 +76 -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 +38 -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 +38 -2
- package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
- package/dist/types/components/collapsible/collapsible.vue.d.ts +38 -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 +76 -4
- package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
- package/dist/types/components/filter_pill/filter_pill.vue.d.ts +2070 -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 +152 -8
- package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts +76 -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 +76 -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 +76 -4
- package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_action.vue.d.ts +76 -4
- package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination.vue.d.ts +38 -2
- package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover.vue.d.ts +76 -4
- package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover_header_footer.vue.d.ts +38 -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 +114 -6
- 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/split_button/split_button-alpha.vue.d.ts +57 -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 +38 -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 +342 -28
- package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
- package/dist/types/components/tab/index.d.ts +1 -1
- package/dist/types/components/tab/tab.vue.d.ts +73 -7
- package/dist/types/components/tab/tab.vue.d.ts.map +1 -1
- package/dist/types/components/tab/tab_group.vue.d.ts +42 -0
- package/dist/types/components/tab/tab_group.vue.d.ts.map +1 -1
- package/dist/types/components/tab/tabs_constants.d.ts +5 -3
- 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 +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 +76 -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 +76 -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 +304 -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 +38 -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 +152 -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 +152 -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 +114 -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 +38 -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 +234 -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 +196 -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 +158 -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 +38 -2
- package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +114 -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 +114 -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 +38 -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 +74 -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 +74 -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 +38 -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 +152 -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 +38 -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 +38 -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 +38 -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 +467 -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 +396 -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 +396 -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 +7 -6
- 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,67 +1,193 @@
|
|
|
1
|
-
const
|
|
1
|
+
const S = {
|
|
2
|
+
// 11-size system: 100-500 support presence, 600-900 do not
|
|
3
|
+
100: "d-avatar--size-100",
|
|
4
|
+
150: "d-avatar--size-150",
|
|
5
|
+
200: "d-avatar--size-200",
|
|
6
|
+
250: "d-avatar--size-250",
|
|
7
|
+
300: "d-avatar--size-300",
|
|
8
|
+
400: "d-avatar--size-400",
|
|
9
|
+
500: "d-avatar--size-500",
|
|
10
|
+
600: "d-avatar--size-600",
|
|
11
|
+
700: "d-avatar--size-700",
|
|
12
|
+
800: "d-avatar--size-800",
|
|
13
|
+
900: "d-avatar--size-900",
|
|
14
|
+
// T-shirt sizes (deprecated aliases)
|
|
2
15
|
xs: "d-avatar--xs",
|
|
3
16
|
sm: "d-avatar--sm",
|
|
4
17
|
md: "d-avatar--md",
|
|
5
18
|
lg: "d-avatar--lg",
|
|
6
19
|
xl: "d-avatar--xl"
|
|
7
|
-
},
|
|
20
|
+
}, p = {
|
|
8
21
|
default: "",
|
|
9
22
|
icon: "d-avatar__icon",
|
|
10
23
|
initials: "d-avatar__initials"
|
|
11
|
-
},
|
|
24
|
+
}, V = {
|
|
25
|
+
// 11-size system: Only sizes 100-500 support presence
|
|
26
|
+
100: "d-avatar__presence--100",
|
|
27
|
+
150: "d-avatar__presence--150",
|
|
28
|
+
200: "d-avatar__presence--200",
|
|
29
|
+
250: "d-avatar__presence--250",
|
|
30
|
+
300: "d-avatar__presence--300",
|
|
31
|
+
400: "d-avatar__presence--400",
|
|
32
|
+
500: "d-avatar__presence--500",
|
|
33
|
+
// T-shirt sizes (deprecated)
|
|
34
|
+
xs: "d-avatar__presence--100",
|
|
35
|
+
sm: "d-avatar__presence--200",
|
|
12
36
|
md: "d-avatar__presence--md",
|
|
13
37
|
lg: "d-avatar__presence--lg"
|
|
14
|
-
},
|
|
38
|
+
}, N = {
|
|
15
39
|
NONE: "",
|
|
16
40
|
BUSY: "busy",
|
|
17
41
|
AWAY: "away",
|
|
18
42
|
OFFLINE: "offline",
|
|
19
43
|
ACTIVE: "active"
|
|
20
|
-
},
|
|
44
|
+
}, O = {
|
|
45
|
+
// 11-size system icon mappings
|
|
46
|
+
100: "100",
|
|
47
|
+
150: "100",
|
|
48
|
+
200: "200",
|
|
49
|
+
250: "200",
|
|
50
|
+
300: "300",
|
|
51
|
+
400: "500",
|
|
52
|
+
500: "600",
|
|
53
|
+
600: "600",
|
|
54
|
+
700: "700",
|
|
55
|
+
800: "800",
|
|
56
|
+
900: "800",
|
|
57
|
+
// T-shirt sizes (deprecated aliases)
|
|
21
58
|
xs: "100",
|
|
22
59
|
sm: "200",
|
|
23
60
|
md: "300",
|
|
24
61
|
lg: "500",
|
|
25
62
|
xl: "600"
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
63
|
+
}, T = [
|
|
64
|
+
0.45,
|
|
65
|
+
// variant 0
|
|
66
|
+
0.49,
|
|
67
|
+
// variant 1
|
|
68
|
+
0.54,
|
|
69
|
+
// variant 2
|
|
70
|
+
0.59,
|
|
71
|
+
// variant 3
|
|
72
|
+
0.64,
|
|
73
|
+
// variant 4
|
|
74
|
+
0.69,
|
|
75
|
+
// variant 5
|
|
76
|
+
0.74,
|
|
77
|
+
// variant 6
|
|
78
|
+
0.78,
|
|
79
|
+
// variant 7
|
|
80
|
+
0.82,
|
|
81
|
+
// variant 8
|
|
82
|
+
0.85
|
|
83
|
+
// variant 9
|
|
84
|
+
], f = [
|
|
85
|
+
0.08,
|
|
86
|
+
// variant 0
|
|
87
|
+
0.12,
|
|
88
|
+
// variant 1
|
|
89
|
+
0.15,
|
|
90
|
+
// variant 2
|
|
91
|
+
0.17,
|
|
92
|
+
// variant 3
|
|
93
|
+
0.18,
|
|
94
|
+
// variant 4
|
|
95
|
+
0.17,
|
|
96
|
+
// variant 5
|
|
97
|
+
0.15,
|
|
98
|
+
// variant 6
|
|
99
|
+
0.12,
|
|
100
|
+
// variant 7
|
|
101
|
+
0.1,
|
|
102
|
+
// variant 8
|
|
103
|
+
0.08
|
|
104
|
+
// variant 9
|
|
105
|
+
], I = {
|
|
106
|
+
1: 0,
|
|
107
|
+
// Red
|
|
108
|
+
2: 30,
|
|
109
|
+
// Orange
|
|
110
|
+
3: 60,
|
|
111
|
+
// Amber/Gold
|
|
112
|
+
4: 90,
|
|
113
|
+
// Yellow-Green
|
|
114
|
+
5: 120,
|
|
115
|
+
// Green
|
|
116
|
+
6: 150,
|
|
117
|
+
// Teal
|
|
118
|
+
7: 180,
|
|
119
|
+
// Cyan
|
|
120
|
+
8: 210,
|
|
121
|
+
// Blue
|
|
122
|
+
9: 240,
|
|
123
|
+
// Indigo
|
|
124
|
+
10: 270,
|
|
125
|
+
// Purple
|
|
126
|
+
11: 300,
|
|
127
|
+
// Magenta
|
|
128
|
+
12: 330
|
|
129
|
+
// Pink/Rose
|
|
130
|
+
}, d = 12, R = 10, g = (t) => t > 1;
|
|
131
|
+
function x(t) {
|
|
132
|
+
const a = parseInt(t, 10);
|
|
133
|
+
if (isNaN(a)) return null;
|
|
134
|
+
const s = Math.floor(a / 100), n = a % 100 / 10;
|
|
135
|
+
return s < 1 || s > d || !Number.isInteger(n) || n < 0 || n >= R ? null : { family: s, variant: n };
|
|
136
|
+
}
|
|
137
|
+
function z(t) {
|
|
138
|
+
let a = 0;
|
|
139
|
+
if (t != null)
|
|
140
|
+
for (let r = 0; r < t.length; r++)
|
|
141
|
+
a = (a << 5) - a + t.charCodeAt(r), a = a & a;
|
|
142
|
+
else
|
|
143
|
+
a = Math.floor(Math.random() * 1e6);
|
|
144
|
+
const s = Math.abs(a), n = s % d + 1, e = Math.floor(s / d) % R;
|
|
145
|
+
return { family: n, variant: e };
|
|
146
|
+
}
|
|
147
|
+
function E(t, a, s) {
|
|
148
|
+
const n = s * Math.PI / 180, e = a * Math.cos(n), r = a * Math.sin(n), o = t + 0.3963377774 * e + 0.2158037573 * r, l = t - 0.1055613458 * e - 0.0638541728 * r, v = t - 0.0894841775 * e - 1.291485548 * r, h = o * o * o, m = l * l * l, u = v * v * v;
|
|
149
|
+
let c = 4.0767416621 * h - 3.3077115913 * m + 0.2309699292 * u, _ = -1.2684380046 * h + 2.6097574011 * m - 0.3413193965 * u, i = -0.0041960863 * h - 0.7034186147 * m + 1.707614701 * u;
|
|
150
|
+
c = Math.max(0, Math.min(1, c)), _ = Math.max(0, Math.min(1, _)), i = Math.max(0, Math.min(1, i));
|
|
151
|
+
const M = (A) => A <= 31308e-7 ? 12.92 * A : 1.055 * Math.pow(A, 1 / 2.4) - 0.055;
|
|
152
|
+
return c = Math.round(M(c) * 255), _ = Math.round(M(_) * 255), i = Math.round(M(i) * 255), "#" + [c, _, i].map((A) => A.toString(16).padStart(2, "0")).join("");
|
|
153
|
+
}
|
|
154
|
+
function F(t, a, s) {
|
|
155
|
+
const n = T[a], e = f[a], r = I[t] ?? 0, o = (s + r) % 360;
|
|
156
|
+
return E(n, e, o);
|
|
157
|
+
}
|
|
158
|
+
const C = {
|
|
159
|
+
AVATAR_SIZE_MODIFIERS: S,
|
|
160
|
+
AVATAR_KIND_MODIFIERS: p,
|
|
161
|
+
AVATAR_PRESENCE_SIZE_MODIFIERS: V,
|
|
162
|
+
AVATAR_PRESENCE_STATES: N,
|
|
163
|
+
AVATAR_ICON_SIZES: O,
|
|
164
|
+
AVATAR_LIGHTNESS: T,
|
|
165
|
+
AVATAR_CHROMA: f,
|
|
166
|
+
AVATAR_HUE_OFFSETS: I,
|
|
167
|
+
AVATAR_FAMILY_COUNT: d,
|
|
168
|
+
AVATAR_VARIANT_COUNT: R,
|
|
169
|
+
AVATAR_GROUP_VALIDATOR: g,
|
|
170
|
+
colorToFamilyVariant: x,
|
|
171
|
+
getRandomFamilyVariant: z,
|
|
172
|
+
oklchToHex: E,
|
|
173
|
+
computeAvatarHex: F
|
|
55
174
|
};
|
|
56
175
|
export {
|
|
57
|
-
|
|
58
|
-
d as
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
176
|
+
f as AVATAR_CHROMA,
|
|
177
|
+
d as AVATAR_FAMILY_COUNT,
|
|
178
|
+
g as AVATAR_GROUP_VALIDATOR,
|
|
179
|
+
I as AVATAR_HUE_OFFSETS,
|
|
180
|
+
O as AVATAR_ICON_SIZES,
|
|
181
|
+
p as AVATAR_KIND_MODIFIERS,
|
|
182
|
+
T as AVATAR_LIGHTNESS,
|
|
183
|
+
V as AVATAR_PRESENCE_SIZE_MODIFIERS,
|
|
184
|
+
N as AVATAR_PRESENCE_STATES,
|
|
185
|
+
S as AVATAR_SIZE_MODIFIERS,
|
|
186
|
+
R as AVATAR_VARIANT_COUNT,
|
|
187
|
+
x as colorToFamilyVariant,
|
|
188
|
+
F as computeAvatarHex,
|
|
189
|
+
C as default,
|
|
190
|
+
z as getRandomFamilyVariant,
|
|
191
|
+
E as oklchToHex
|
|
66
192
|
};
|
|
67
193
|
//# sourceMappingURL=avatar-constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar-constants.js","sources":["../../../components/avatar/avatar_constants.js"],"sourcesContent":["export const AVATAR_SIZE_MODIFIERS = {\n xs: 'd-avatar--xs',\n sm: 'd-avatar--sm',\n md: 'd-avatar--md',\n lg: 'd-avatar--lg',\n xl: 'd-avatar--xl',\n};\n\nexport const AVATAR_KIND_MODIFIERS = {\n default: '',\n icon: 'd-avatar__icon',\n initials: 'd-avatar__initials',\n};\n\nexport const AVATAR_PRESENCE_SIZE_MODIFIERS = {\n md: 'd-avatar__presence--md',\n lg: 'd-avatar__presence--lg',\n};\n\nexport const AVATAR_PRESENCE_STATES = {\n NONE: '',\n BUSY: 'busy',\n AWAY: 'away',\n OFFLINE: 'offline',\n ACTIVE: 'active',\n};\n\nexport const AVATAR_ICON_SIZES = {\n xs: '100',\n sm: '200',\n md: '300',\n lg: '500',\n xl: '600',\n};\n\nexport const AVATAR_COLORS = [\n '000',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '1000',\n '1100',\n '1200',\n '1300',\n '1400',\n '1500',\n '1600',\n '1700',\n '1800',\n];\n\n// We do not use the color '000' (grey) in the randomized avatar colors, but it can still be set manually.\nexport const AVATAR_RANDOM_COLORS = AVATAR_COLORS.slice(1);\n\nexport const AVATAR_GROUP_VALIDATOR = (group) => group > 1;\n\nexport default {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_ICON_SIZES,\n AVATAR_COLORS,\n AVATAR_RANDOM_COLORS,\n AVATAR_GROUP_VALIDATOR,\n};\n"],"names":["AVATAR_SIZE_MODIFIERS","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","AVATAR_ICON_SIZES","AVATAR_COLORS","AVATAR_RANDOM_COLORS","AVATAR_GROUP_VALIDATOR","group","avatar_constants"],"mappings":"AAAY,MAACA,IAAwB;AAAA,EACnC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAAwB;AAAA,EACnC,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AACZ,GAEaC,IAAiC;AAAA,EAC5C,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAAyB;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AACV,GAEaC,IAAoB;AAAA,EAC/B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGaC,IAAuBD,EAAc,MAAM,CAAC,GAE5CE,IAAyB,CAACC,MAAUA,IAAQ,GAEzDC,IAAe;AAAA,EACb,uBAAAT;AAAA,EACA,uBAAAC;AAAA,EACA,gCAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,wBAAAC;AACF;"}
|
|
1
|
+
{"version":3,"file":"avatar-constants.js","sources":["../../../components/avatar/avatar_constants.js"],"sourcesContent":["export const AVATAR_SIZE_MODIFIERS = {\n // 11-size system: 100-500 support presence, 600-900 do not\n 100: 'd-avatar--size-100',\n 150: 'd-avatar--size-150',\n 200: 'd-avatar--size-200',\n 250: 'd-avatar--size-250',\n 300: 'd-avatar--size-300',\n 400: 'd-avatar--size-400',\n 500: 'd-avatar--size-500',\n 600: 'd-avatar--size-600',\n 700: 'd-avatar--size-700',\n 800: 'd-avatar--size-800',\n 900: 'd-avatar--size-900',\n // T-shirt sizes (deprecated aliases)\n xs: 'd-avatar--xs',\n sm: 'd-avatar--sm',\n md: 'd-avatar--md',\n lg: 'd-avatar--lg',\n xl: 'd-avatar--xl',\n};\n\nexport const AVATAR_KIND_MODIFIERS = {\n default: '',\n icon: 'd-avatar__icon',\n initials: 'd-avatar__initials',\n};\n\nexport const AVATAR_PRESENCE_SIZE_MODIFIERS = {\n // 11-size system: Only sizes 100-500 support presence\n 100: 'd-avatar__presence--100',\n 150: 'd-avatar__presence--150',\n 200: 'd-avatar__presence--200',\n 250: 'd-avatar__presence--250',\n 300: 'd-avatar__presence--300',\n 400: 'd-avatar__presence--400',\n 500: 'd-avatar__presence--500',\n // T-shirt sizes (deprecated)\n xs: 'd-avatar__presence--100',\n sm: 'd-avatar__presence--200',\n md: 'd-avatar__presence--md',\n lg: 'd-avatar__presence--lg',\n};\n\nexport const AVATAR_PRESENCE_STATES = {\n NONE: '',\n BUSY: 'busy',\n AWAY: 'away',\n OFFLINE: 'offline',\n ACTIVE: 'active',\n};\n\nexport const AVATAR_ICON_SIZES = {\n // 11-size system icon mappings\n 100: '100',\n 150: '100',\n 200: '200',\n 250: '200',\n 300: '300',\n 400: '500',\n 500: '600',\n 600: '600',\n 700: '700',\n 800: '800',\n 900: '800',\n // T-shirt sizes (deprecated aliases)\n xs: '100',\n sm: '200',\n md: '300',\n lg: '500',\n xl: '600',\n};\n\n// OKLCH Lightness scale (L) for avatar variants 0-9\n// Progresses from dark (0.45) to light (0.85)\nexport const AVATAR_LIGHTNESS = [\n 0.45, // variant 0\n 0.49, // variant 1\n 0.54, // variant 2\n 0.59, // variant 3\n 0.64, // variant 4\n 0.69, // variant 5\n 0.74, // variant 6\n 0.78, // variant 7\n 0.82, // variant 8\n 0.85, // variant 9\n];\n\n// OKLCH Chroma scale (C) for avatar variants 0-9\n// Bell curve: lower at extremes, peak in middle for best saturation\nexport const AVATAR_CHROMA = [\n 0.08, // variant 0\n 0.12, // variant 1\n 0.15, // variant 2\n 0.17, // variant 3\n 0.18, // variant 4\n 0.17, // variant 5\n 0.15, // variant 6\n 0.12, // variant 7\n 0.10, // variant 8\n 0.08, // variant 9\n];\n\n// Hue offsets for each family (1-12), 30° apart around the color wheel\nexport const AVATAR_HUE_OFFSETS = {\n 1: 0, // Red\n 2: 30, // Orange\n 3: 60, // Amber/Gold\n 4: 90, // Yellow-Green\n 5: 120, // Green\n 6: 150, // Teal\n 7: 180, // Cyan\n 8: 210, // Blue\n 9: 240, // Indigo\n 10: 270, // Purple\n 11: 300, // Magenta\n 12: 330, // Pink/Rose\n};\n\n// Number of families and variants\nexport const AVATAR_FAMILY_COUNT = 12;\nexport const AVATAR_VARIANT_COUNT = 10;\n\nexport const AVATAR_GROUP_VALIDATOR = (group) => group > 1;\n\n/**\n * Convert color code to family/variant\n * @param {string} colorCode - Color code (e.g., '540', '1020')\n * @returns {{ family: number, variant: number } | null} - Family (1-12) and variant (0-9)\n */\nexport function colorToFamilyVariant (colorCode) {\n const num = parseInt(colorCode, 10);\n if (isNaN(num)) return null;\n const family = Math.floor(num / 100);\n const variant = (num % 100) / 10;\n if (family < 1 || family > AVATAR_FAMILY_COUNT) return null;\n if (!Number.isInteger(variant) || variant < 0 || variant >= AVATAR_VARIANT_COUNT) return null;\n return { family, variant };\n}\n\n/**\n * Get a random family and variant\n * @param {string} [seed] - Optional seed for deterministic randomization\n * @returns {{ family: number, variant: number }}\n */\nexport function getRandomFamilyVariant (seed) {\n let hash = 0;\n if (seed != null) {\n for (let i = 0; i < seed.length; i++) {\n hash = ((hash << 5) - hash) + seed.charCodeAt(i);\n hash = hash & hash;\n }\n } else {\n hash = Math.floor(Math.random() * 1000000);\n }\n\n // Use absolute value to handle negative hashes\n const absHash = Math.abs(hash);\n const family = (absHash % AVATAR_FAMILY_COUNT) + 1; // 1-12\n const variant = Math.floor(absHash / AVATAR_FAMILY_COUNT) % AVATAR_VARIANT_COUNT; // 0-9\n\n return { family, variant };\n}\n\n/**\n * Convert OKLCH to hex color (for fallback browsers)\n * Uses sRGB approximation - may clip out-of-gamut colors\n * @param {number} l - Lightness (0-1)\n * @param {number} c - Chroma (0-0.4)\n * @param {number} h - Hue (0-360)\n * @returns {string} - Hex color string (e.g., '#ff5733')\n */\nexport function oklchToHex (l, c, h) {\n // Convert OKLCH to OKLab\n const hRad = (h * Math.PI) / 180;\n const a = c * Math.cos(hRad);\n const b = c * Math.sin(hRad);\n\n // OKLab to linear sRGB\n const l_ = l + 0.3963377774 * a + 0.2158037573 * b;\n const m_ = l - 0.1055613458 * a - 0.0638541728 * b;\n const s_ = l - 0.0894841775 * a - 1.2914855480 * b;\n\n const l3 = l_ * l_ * l_;\n const m3 = m_ * m_ * m_;\n const s3 = s_ * s_ * s_;\n\n let r = +4.0767416621 * l3 - 3.3077115913 * m3 + 0.2309699292 * s3;\n let g = -1.2684380046 * l3 + 2.6097574011 * m3 - 0.3413193965 * s3;\n let bl = -0.0041960863 * l3 - 0.7034186147 * m3 + 1.7076147010 * s3;\n\n // Clamp to [0, 1]\n r = Math.max(0, Math.min(1, r));\n g = Math.max(0, Math.min(1, g));\n bl = Math.max(0, Math.min(1, bl));\n\n // Linear to sRGB gamma\n const toSrgb = (x) => x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055;\n\n r = Math.round(toSrgb(r) * 255);\n g = Math.round(toSrgb(g) * 255);\n bl = Math.round(toSrgb(bl) * 255);\n\n return '#' + [r, g, bl].map(x => x.toString(16).padStart(2, '0')).join('');\n}\n\n/**\n * Compute fallback hex color for a given family, variant, and anchor hue\n * @param {number} family - Family number (1-12)\n * @param {number} variant - Variant number (0-9)\n * @param {number} anchorHue - Theme's anchor hue in degrees\n * @returns {string} - Hex color string\n */\nexport function computeAvatarHex (family, variant, anchorHue) {\n const l = AVATAR_LIGHTNESS[variant];\n const c = AVATAR_CHROMA[variant];\n const hueOffset = AVATAR_HUE_OFFSETS[family] ?? 0;\n const h = (anchorHue + hueOffset) % 360;\n return oklchToHex(l, c, h);\n}\n\nexport default {\n AVATAR_SIZE_MODIFIERS,\n AVATAR_KIND_MODIFIERS,\n AVATAR_PRESENCE_SIZE_MODIFIERS,\n AVATAR_PRESENCE_STATES,\n AVATAR_ICON_SIZES,\n AVATAR_LIGHTNESS,\n AVATAR_CHROMA,\n AVATAR_HUE_OFFSETS,\n AVATAR_FAMILY_COUNT,\n AVATAR_VARIANT_COUNT,\n AVATAR_GROUP_VALIDATOR,\n colorToFamilyVariant,\n getRandomFamilyVariant,\n oklchToHex,\n computeAvatarHex,\n};\n"],"names":["AVATAR_SIZE_MODIFIERS","AVATAR_KIND_MODIFIERS","AVATAR_PRESENCE_SIZE_MODIFIERS","AVATAR_PRESENCE_STATES","AVATAR_ICON_SIZES","AVATAR_LIGHTNESS","AVATAR_CHROMA","AVATAR_HUE_OFFSETS","AVATAR_FAMILY_COUNT","AVATAR_VARIANT_COUNT","AVATAR_GROUP_VALIDATOR","group","colorToFamilyVariant","colorCode","num","family","variant","getRandomFamilyVariant","seed","hash","i","absHash","oklchToHex","l","c","h","hRad","a","b","l_","m_","s_","l3","m3","s3","r","g","bl","toSrgb","x","computeAvatarHex","anchorHue","hueOffset","avatar_constants"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("../../common/utils/index.cjs"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("../../common/utils/index.cjs"),r=require("./avatar-constants.cjs"),u=require("./utils.cjs"),a=require("vue"),m=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),h=require("../presence/presence.cjs");var d;const o=typeof CSS<"u"&&((d=CSS.supports)==null?void 0:d.call(CSS,"background","oklch(0.5 0.1 0)")),f={compatConfig:{MODE:3},name:"DtAvatar",components:{DtPresence:h.default},inheritAttrs:!1,props:{id:{type:String,default(){return l.getUniqueString()}},seed:{type:String,default:void 0},family:{type:Number,default:void 0,validator:e=>e>=1&&e<=r.AVATAR_FAMILY_COUNT},variant:{type:Number,default:void 0,validator:e=>e>=0&&e<r.AVATAR_VARIANT_COUNT},color:{type:String,default:void 0},size:{type:[String,Number],default:300,validator:e=>Object.keys(r.AVATAR_SIZE_MODIFIERS).includes(String(e))},avatarClass:{type:[String,Array,Object],default:""},canvasClass:{type:[String,Array,Object],default:""},iconClass:{type:[String,Array,Object],default:""},presence:{type:String,default:r.AVATAR_PRESENCE_STATES.NONE,validator:e=>Object.values(r.AVATAR_PRESENCE_STATES).includes(e)},presenceProps:{type:Object,default:()=>({})},group:{type:Number,default:void 0,validator:e=>r.AVATAR_GROUP_VALIDATOR(e)},overlayText:{type:String,default:""},overlayClass:{type:[String,Array,Object],default:""},imageSrc:{type:String,default:""},imageAlt:{type:String,default:void 0},fullName:{type:String,default:""},clickable:{type:Boolean,default:!1},iconAriaLabel:{type:String,default:void 0},iconOnly:{type:Boolean,default:!1},deactivated:{type:Boolean,default:!1}},emits:["click"],data(){return{AVATAR_SIZE_MODIFIERS:r.AVATAR_SIZE_MODIFIERS,AVATAR_KIND_MODIFIERS:r.AVATAR_KIND_MODIFIERS,AVATAR_PRESENCE_SIZE_MODIFIERS:r.AVATAR_PRESENCE_SIZE_MODIFIERS,imageLoadedSuccessfully:null,formattedInitials:"",initializing:!1,hasSlotContent:l.hasSlotContent,anchorHue:0}},computed:{hasOverlayIcon(){return l.hasSlotContent(this.$slots.overlayIcon)},isIconType(){return l.hasSlotContent(this.$slots.icon)},iconDataQa(){return"dt-avatar-icon"},computedFamily(){if(this.isIconType)return;if(this.family!==void 0)return this.family;if(this.color!==void 0){const i=r.colorToFamilyVariant(this.color);if(i)return i.family}return r.getRandomFamilyVariant(this.seed).family},computedVariant(){if(this.isIconType)return;if(this.variant!==void 0)return this.variant;if(this.color!==void 0){const i=r.colorToFamilyVariant(this.color);if(i)return i.variant}return r.getRandomFamilyVariant(this.seed).variant},avatarClasses(){return["d-avatar",this.$attrs.class,r.AVATAR_SIZE_MODIFIERS[this.validatedSize],this.avatarClass,{"d-avatar--group":this.showGroup,"d-avatar--group-digits-2":this.showGroup&&String(this.formattedGroup).length===2,"d-avatar--group-digits-3":this.showGroup&&String(this.formattedGroup).length>=3,"d-avatar--clickable":this.clickable,"d-avatar--presence":this.presence&&!this.showGroup,"d-avatar--icon-only":this.iconOnly,"d-avatar--deactivated":this.deactivated}]},avatarStyles(){const e=this.$attrs.style,i=e!=null?[].concat(e):[];if(!o&&!this.isIconType&&this.computedFamily&&this.computedVariant!==void 0){const t=r.computeAvatarHex(this.computedFamily,this.computedVariant,this.anchorHue);i.push({"--avatar-color-background":t})}return i.length>0?i:void 0},overlayClasses(){return["d-avatar__overlay",this.overlayClass,{"d-avatar__overlay-icon":this.hasOverlayIcon}]},showGroup(){return r.AVATAR_GROUP_VALIDATOR(this.group)},formattedGroup(){const e=String(this.validatedSize);return(["xs","100","150","200","250"].includes(e)?2:3)===2?this.group>9?"9+":this.group:this.group>99?"99+":this.group},validatedSize(){return this.size},showImage(){return this.imageLoadedSuccessfully!==!1&&this.imageSrc}},watch:{fullName:{immediate:!0,handler(){this.formatInitials()}},size:{immediate:!0,handler(){this.formatInitials()}},group:{immediate:!0,handler(){this.formatInitials()}},imageSrc(e){this.imageLoadedSuccessfully=null,e&&(this.validateProps(),this.setImageListeners())}},mounted(){this.validateProps(),this.setImageListeners(),o||this.readAnchorHue()},methods:{async setImageListeners(){await this.$nextTick();const e=this.$refs.avatarImage;e&&(e.addEventListener("load",()=>this._loadedImageEventHandler(e),{once:!0}),e.addEventListener("error",()=>this._erroredImageEventHandler(e),{once:!0}))},formatInitials(){const e=u.extractInitialsFromName(this.fullName),i=String(this.validatedSize);i==="xs"||i==="100"?this.formattedInitials="":i==="sm"||i==="150"||i==="200"?this.formattedInitials=e[0]:this.formattedInitials=e},readAnchorHue(){try{const e=getComputedStyle(document.documentElement).getPropertyValue("--dt-avatar-anchor-hue").trim();this.anchorHue=parseFloat(e)||0}catch{this.anchorHue=0}},_loadedImageEventHandler(e){this.imageLoadedSuccessfully=!0,e.classList.remove("d-d-none")},_erroredImageEventHandler(e){this.imageLoadedSuccessfully=!1,e.classList.add("d-d-none")},validateProps(){this.imageSrc&&this.imageAlt===void 0&&console.error('image-alt required if image-src is provided. Can be set to "" (empty string) if the image is described in text nearby')},handleClick(e){this.clickable&&this.$emit("click",e)}}},y={class:"d-avatar__canvas-inner"},v=["src","alt"],_=["aria-label","data-qa"],g={key:1,class:"d-avatar__overlay-text"},S=["aria-label"];function A(e,i,t,p,s,n){const c=a.resolveComponent("dt-presence");return a.openBlock(),a.createBlock(a.resolveDynamicComponent(t.clickable?"button":"div"),{id:t.id,class:a.normalizeClass(n.avatarClasses),style:a.normalizeStyle(n.avatarStyles),"data-avatar-family":t.iconOnly?void 0:n.computedFamily,"data-avatar-variant":t.iconOnly?void 0:n.computedVariant,"data-qa":"dt-avatar",type:t.clickable?"button":void 0,onClick:n.handleClick},{default:a.withCtx(()=>[a.createElementVNode("div",{ref:"canvas",class:a.normalizeClass([t.canvasClass,"d-avatar__canvas",{"d-avatar--image-loaded":s.imageLoadedSuccessfully}])},[a.createElementVNode("div",y,[n.showImage?(a.openBlock(),a.createElementBlock("img",{key:0,ref:"avatarImage",class:"d-avatar__image","data-qa":"dt-avatar-image",src:t.imageSrc,alt:t.imageAlt},null,8,v)):n.isIconType?(a.openBlock(),a.createElementBlock("div",{key:1,class:a.normalizeClass([t.iconClass,s.AVATAR_KIND_MODIFIERS.icon]),"aria-label":t.clickable?t.iconAriaLabel:"","data-qa":n.iconDataQa},[a.renderSlot(e.$slots,"icon")],10,_)):(a.openBlock(),a.createElementBlock("span",{key:2,class:a.normalizeClass([s.AVATAR_KIND_MODIFIERS.initials])},a.toDisplayString(s.formattedInitials),3))])],2),n.hasOverlayIcon||t.overlayText?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(n.overlayClasses)},[n.hasOverlayIcon?a.renderSlot(e.$slots,"overlayIcon",{key:0}):t.overlayText?(a.openBlock(),a.createElementBlock("p",g,a.toDisplayString(t.overlayText),1)):a.createCommentVNode("",!0)],2)):a.createCommentVNode("",!0),n.showGroup?(a.openBlock(),a.createElementBlock("span",{key:1,class:"d-avatar__count","data-qa":"dt-avatar-count",role:"img","aria-label":`${t.group} participants`},a.toDisplayString(n.formattedGroup),9,S)):a.createCommentVNode("",!0),t.presence&&!n.showGroup&&s.AVATAR_PRESENCE_SIZE_MODIFIERS[t.size]?(a.openBlock(),a.createBlock(c,a.mergeProps({key:2,presence:t.presence,class:["d-avatar__presence",s.AVATAR_PRESENCE_SIZE_MODIFIERS[t.size]]},t.presenceProps,{"data-qa":"dt-presence"}),null,16,["presence","class"])):a.createCommentVNode("",!0)]),_:3},8,["id","class","style","data-avatar-family","data-avatar-variant","type","onClick"])}const I=m._(f,[["render",A]]);exports.default=I;
|
|
2
2
|
//# sourceMappingURL=avatar.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.cjs","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","e","_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.cjs","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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"}
|