@dialpad/dialtone-vue 4.5.0 → 4.6.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/{RichTextEditor-DaOHmXD_.js → RichTextEditor-D8DfONFm.js} +7 -7
- package/dist/{RichTextEditor-DaOHmXD_.js.map → RichTextEditor-D8DfONFm.js.map} +1 -1
- package/dist/{RichTextEditor-7eY8gy9u.cjs → RichTextEditor-DMUDJKVn.cjs} +2 -2
- package/dist/{RichTextEditor-7eY8gy9u.cjs.map → RichTextEditor-DMUDJKVn.cjs.map} +1 -1
- package/dist/common/sr_only_close_button.vue.d.ts +18 -1
- package/dist/component-documentation.json +1 -1
- package/dist/components/Avatar/Avatar.vue.d.ts +12 -8
- package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
- package/dist/components/Badge/Badge.vue.d.ts +1 -2
- package/dist/components/Banner/Banner.vue.d.ts +36 -2
- package/dist/components/Banner/Banner.vue.d.ts.map +1 -1
- package/dist/components/Button/Button.vue.d.ts +18 -1
- package/dist/components/Button/Button.vue.d.ts.map +1 -1
- package/dist/components/Chip/Chip.vue.d.ts +18 -1
- package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
- package/dist/components/Collapsible/Collapsible.vue.d.ts +18 -1
- package/dist/components/Collapsible/Collapsible.vue.d.ts.map +1 -1
- package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts +36 -2
- package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts.map +1 -1
- package/dist/components/Dropdown/Dropdown.vue.d.ts +36 -2
- package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
- package/dist/components/FilterPill/FilterPill.vue.d.ts +90 -5
- package/dist/components/FilterPill/FilterPill.vue.d.ts.map +1 -1
- package/dist/components/Hovercard/Hovercard.vue.d.ts +72 -4
- package/dist/components/Hovercard/Hovercard.vue.d.ts.map +1 -1
- package/dist/components/ImageViewer/ImageViewer.vue.d.ts +36 -2
- package/dist/components/ImageViewer/ImageViewer.vue.d.ts.map +1 -1
- package/dist/components/Loader/Loader.vue.d.ts +18 -1
- package/dist/components/Loader/Loader.vue.d.ts.map +1 -1
- package/dist/components/Loader/LoaderConstants.d.ts +5 -0
- package/dist/components/Loader/LoaderConstants.d.ts.map +1 -0
- package/dist/components/Loader/index.d.ts +1 -0
- package/dist/components/Modal/Modal.vue.d.ts +37 -3
- package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
- package/dist/components/Notice/Notice.vue.d.ts +36 -2
- package/dist/components/Notice/Notice.vue.d.ts.map +1 -1
- package/dist/components/Notice/NoticeAction.vue.d.ts +36 -2
- package/dist/components/Notice/NoticeAction.vue.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.vue.d.ts +18 -1
- package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
- package/dist/components/Popover/Popover.vue.d.ts +36 -2
- package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
- package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts +18 -1
- package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts.map +1 -1
- package/dist/components/RichTextEditor/Extensions/Mentions/MentionSuggestion.vue.d.ts +12 -8
- package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts +55 -5
- package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlItem.vue.d.ts.map +1 -1
- package/dist/components/SplitButton/SplitButton.vue.d.ts +72 -4
- package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
- package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts +18 -1
- package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts.map +1 -1
- package/dist/components/SplitButton/SplitButtonStart.vue.d.ts +18 -1
- package/dist/components/Tab/Tab.vue.d.ts +18 -1
- package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts +36 -2
- package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts.map +1 -1
- package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts +36 -2
- package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts.map +1 -1
- package/dist/components/Toast/Toast.vue.d.ts +144 -8
- package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
- package/dist/dialtone-vue.cjs +1 -1
- package/dist/dialtone-vue.js +116 -115
- package/dist/lib/avatar/avatar.cjs +1 -1
- package/dist/lib/avatar/avatar.cjs.map +1 -1
- package/dist/lib/avatar/avatar.js +50 -47
- package/dist/lib/avatar/avatar.js.map +1 -1
- package/dist/lib/badge/badge.cjs +1 -1
- package/dist/lib/badge/badge.cjs.map +1 -1
- package/dist/lib/badge/badge.js +12 -14
- package/dist/lib/badge/badge.js.map +1 -1
- package/dist/lib/button/button.cjs +1 -1
- package/dist/lib/button/button.js +21 -21
- package/dist/lib/dropdown/dropdown.cjs.map +1 -1
- package/dist/lib/dropdown/dropdown.js.map +1 -1
- package/dist/lib/filter-pill/filter-pill.cjs +1 -1
- package/dist/lib/filter-pill/filter-pill.js +5 -5
- package/dist/lib/loader/index.cjs +1 -1
- package/dist/lib/loader/index.js +3 -2
- package/dist/lib/loader/loader-constants.cjs +2 -0
- package/dist/lib/loader/loader-constants.cjs.map +1 -0
- package/dist/lib/loader/loader-constants.js +9 -0
- package/dist/lib/loader/loader-constants.js.map +1 -0
- package/dist/lib/loader/loader.cjs +21 -21
- package/dist/lib/loader/loader.cjs.map +1 -1
- package/dist/lib/loader/loader.js +77 -14
- package/dist/lib/loader/loader.js.map +1 -1
- package/dist/lib/modal/modal.cjs +1 -1
- package/dist/lib/modal/modal.cjs.map +1 -1
- package/dist/lib/modal/modal.js +6 -5
- package/dist/lib/modal/modal.js.map +1 -1
- package/dist/lib/rich-text-editor/index.cjs +1 -1
- package/dist/lib/rich-text-editor/index.js +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
- package/dist/lib/segmented-control/segmented-control-item.cjs.map +1 -1
- package/dist/lib/segmented-control/segmented-control-item.js.map +1 -1
- package/dist/lib/text/text.cjs.map +1 -1
- package/dist/lib/text/text.js.map +1 -1
- package/dist/localization/index.cjs +1 -1
- package/dist/localization/index.cjs.map +1 -1
- package/dist/localization/index.js +50 -33
- package/dist/localization/index.js.map +1 -1
- package/package.json +5 -5
package/dist/dialtone-vue.js
CHANGED
|
@@ -27,164 +27,165 @@ import st from "./lib/notice/notice-icon.js";
|
|
|
27
27
|
import { TEXT_ALIGN_MODIFIERS as ct, TEXT_BOX_TRIM_MODIFIERS as lt, TEXT_DENSITY_MODIFIERS as ut, TEXT_FAMILY_MODIFIERS as dt, TEXT_FONT_SIZE_MODIFIERS as ft, TEXT_HEADLINE_ONLY_SIZES as pt, TEXT_ITALIC_CLASS as mt, TEXT_KIND_MODIFIERS as ht, TEXT_LINE_CLAMP_CLASS as gt, TEXT_NUMERIC_CLASS as _t, TEXT_SIZE_MODIFIERS as vt, TEXT_STRENGTH_MODIFIERS as yt, TEXT_TONE_MODIFIERS as bt, TEXT_TRUNCATE_CLASS as xt, TEXT_VARIANT_MODIFIERS as St, TEXT_WRAP_MODIFIERS as Ct } from "./lib/text/text-constants.js";
|
|
28
28
|
import wt from "./lib/text/text.js";
|
|
29
29
|
import Tt from "./lib/notice/notice-content.js";
|
|
30
|
-
import Et from "./lib/loader/loader.js";
|
|
31
|
-
import {
|
|
32
|
-
import
|
|
33
|
-
import
|
|
34
|
-
import {
|
|
35
|
-
import Wt from "./lib/
|
|
36
|
-
import Gt from "./lib/
|
|
37
|
-
import Kt from "./lib/notice/notice.js";
|
|
38
|
-
import qt from "./lib/
|
|
30
|
+
import { LOADER_KIND_MODIFIERS as Et } from "./lib/loader/loader-constants.js";
|
|
31
|
+
import { DialtoneLocalization as Dt } from "./localization/index.js";
|
|
32
|
+
import Ot from "./lib/loader/loader.js";
|
|
33
|
+
import { BUTTON_ICON_SIZES as kt, BUTTON_IMPORTANCE_MODIFIERS as At, BUTTON_KIND_MODIFIERS as jt, BUTTON_SIZE_MODIFIERS as Mt, BUTTON_TYPES as Nt, ICON_POSITION_MODIFIERS as Pt, INVALID_COMBINATION as Ft } from "./lib/button/button-constants.js";
|
|
34
|
+
import { CRITICAL as It, LINK_KIND_MODIFIERS as Lt, LINK_VARIANTS as Rt, MENTION as zt, MUTED as Bt, POSITIVE as Vt, WARNING as Ht, getLinkKindModifier as Ut } from "./lib/link/link-constants.js";
|
|
35
|
+
import Wt from "./lib/link/link.js";
|
|
36
|
+
import Gt from "./lib/button/button.js";
|
|
37
|
+
import Kt from "./lib/notice/notice-action.js";
|
|
38
|
+
import qt from "./lib/notice/notice.js";
|
|
39
|
+
import Jt from "./lib/banner/banner.js";
|
|
39
40
|
import "./lib/banner/index.js";
|
|
40
|
-
import { DT_BOX_AS_VALUES as
|
|
41
|
-
import
|
|
41
|
+
import { DT_BOX_AS_VALUES as Yt, DT_BOX_BORDER_COLOR_VALUES as Xt, DT_BOX_BORDER_RADIUS_VALUES as Zt, DT_BOX_BORDER_WIDTH_VALUES as Qt, DT_BOX_INSET_SIDE_VALUES as $t, DT_BOX_INSET_VALUES as en, DT_BOX_LAYOUT_VALUES as tn, DT_BOX_OVERFLOW_VALUES as nn, DT_BOX_POSITION_VALUES as rn, DT_BOX_SCROLLBAR_VALUES as an, DT_BOX_SHADOW_VALUES as on, DT_BOX_SPACING_VALUES as sn, DT_BOX_SURFACE_VALUES as cn, DT_BOX_Z_INDEX_VALUES as ln } from "./lib/box/box-constants.js";
|
|
42
|
+
import un from "./lib/box/box.js";
|
|
42
43
|
import "./lib/box/index.js";
|
|
43
|
-
import { BREADCRUMBS_INVERTED_MODIFIER as
|
|
44
|
-
import
|
|
45
|
-
import
|
|
44
|
+
import { BREADCRUMBS_INVERTED_MODIFIER as dn, BREADCRUMB_ITEM_SELECTED_MODIFIER as fn } from "./lib/breadcrumbs/breadcrumbs-constants.js";
|
|
45
|
+
import pn from "./lib/breadcrumbs/breadcrumb-item.js";
|
|
46
|
+
import mn from "./lib/breadcrumbs/breadcrumbs.js";
|
|
46
47
|
import "./lib/breadcrumbs/index.js";
|
|
47
|
-
import { BUTTON_GROUP_ALIGNMENT as
|
|
48
|
-
import
|
|
48
|
+
import { BUTTON_GROUP_ALIGNMENT as hn } from "./lib/button-group/button-group-constants.js";
|
|
49
|
+
import gn from "./lib/button-group/button-group.js";
|
|
49
50
|
import "./lib/button-group/index.js";
|
|
50
|
-
import
|
|
51
|
+
import _n from "./lib/card/card.js";
|
|
51
52
|
import "./lib/card/index.js";
|
|
52
|
-
import
|
|
53
|
-
import
|
|
54
|
-
import
|
|
55
|
-
import { CHIP_CLOSE_BUTTON_SIZE_MODIFIERS as
|
|
56
|
-
import
|
|
53
|
+
import vn from "./lib/checkbox/checkbox.js";
|
|
54
|
+
import yn from "./lib/input-group/input-group.js";
|
|
55
|
+
import bn from "./lib/checkbox-group/checkbox-group.js";
|
|
56
|
+
import { CHIP_CLOSE_BUTTON_SIZE_MODIFIERS as xn, CHIP_ICON_SIZES as Sn, CHIP_SIZE_MODIFIERS as Cn } from "./lib/chip/chip-constants.js";
|
|
57
|
+
import wn from "./lib/chip/chip.js";
|
|
57
58
|
import "./lib/chip/index.js";
|
|
58
|
-
import
|
|
59
|
+
import Tn from "./lib/codeblock/codeblock.js";
|
|
59
60
|
import "./lib/codeblock/index.js";
|
|
60
|
-
import
|
|
61
|
+
import En from "./lib/collapsible/collapsible.js";
|
|
61
62
|
import "./lib/collapsible/index.js";
|
|
62
|
-
import { LIST_ITEM_NAVIGATION_TYPES as
|
|
63
|
-
import
|
|
64
|
-
import
|
|
65
|
-
import
|
|
66
|
-
import
|
|
67
|
-
import
|
|
68
|
-
import
|
|
69
|
-
import
|
|
70
|
-
import { t as
|
|
71
|
-
import { COMBOBOX_LABEL_SIZES as
|
|
72
|
-
import { DT_STACK_DIRECTION as
|
|
73
|
-
import
|
|
74
|
-
import { TOOLTIP_DELAY_MS as
|
|
75
|
-
import { POPOVER_APPEND_TO_VALUES as
|
|
76
|
-
import
|
|
77
|
-
import { t as
|
|
78
|
-
import { formatLong as
|
|
63
|
+
import { LIST_ITEM_NAVIGATION_TYPES as Dn, LIST_ITEM_TYPES as On } from "./lib/list-item/list-item-constants.js";
|
|
64
|
+
import kn from "./lib/item-layout/item-layout.js";
|
|
65
|
+
import An from "./lib/list-item/list-item.js";
|
|
66
|
+
import jn from "./lib/skeleton/skeleton-shape.js";
|
|
67
|
+
import Mn from "./lib/skeleton/skeleton-text.js";
|
|
68
|
+
import Nn from "./lib/skeleton/skeleton-paragraph.js";
|
|
69
|
+
import Pn from "./lib/skeleton/skeleton-list-item.js";
|
|
70
|
+
import Fn from "./lib/skeleton/skeleton.js";
|
|
71
|
+
import { t as In } from "./Combobox-WsLvegw6.js";
|
|
72
|
+
import { COMBOBOX_LABEL_SIZES as Ln } from "./lib/combobox/combobox-constants.js";
|
|
73
|
+
import { DT_STACK_DIRECTION as Rn, DT_STACK_GAP as zn, DT_STACK_RESPONSIVE_BREAKPOINTS as Bn } from "./lib/stack/stack-constants.js";
|
|
74
|
+
import Vn from "./lib/stack/stack.js";
|
|
75
|
+
import { TOOLTIP_DELAY_MS as Hn, TOOLTIP_DIRECTIONS as Un, TOOLTIP_HIDE_ON_CLICK_VARIANTS as Wn, TOOLTIP_KIND_MODIFIERS as Gn, TOOLTIP_STICKY_VALUES as Kn } from "./lib/tooltip/tooltip-constants.js";
|
|
76
|
+
import { POPOVER_APPEND_TO_VALUES as qn, POPOVER_CONTENT_WIDTHS as Jn, POPOVER_DIRECTIONS as Yn, POPOVER_HEADER_FOOTER_PADDING_CLASSES as Xn, POPOVER_INITIAL_FOCUS_STRINGS as Zn, POPOVER_PADDING_CLASSES as Qn, POPOVER_ROLES as $n, POPOVER_STICKY_VALUES as er } from "./lib/popover/popover-constants.js";
|
|
77
|
+
import tr from "./lib/tooltip/tooltip.js";
|
|
78
|
+
import { t as nr } from "./Datepicker-D-Lgvthq.js";
|
|
79
|
+
import { formatLong as rr, formatMedium as ir, formatNoYear as ar, formatNumerical as or, formatShort as sr } from "./lib/datepicker/format-utils.js";
|
|
79
80
|
import "./lib/datepicker/index.js";
|
|
80
|
-
import { DT_DESCRIPTION_LIST_DIRECTION as
|
|
81
|
-
import
|
|
81
|
+
import { DT_DESCRIPTION_LIST_DIRECTION as cr } from "./lib/description-list/description-list-constants.js";
|
|
82
|
+
import lr from "./lib/description-list/description-list.js";
|
|
82
83
|
import "./lib/description-list/index.js";
|
|
83
|
-
import
|
|
84
|
-
import
|
|
85
|
-
import { DROPDOWN_PADDING_CLASSES as
|
|
86
|
-
import
|
|
87
|
-
import
|
|
88
|
-
import
|
|
89
|
-
import { INPUT_SIZES as
|
|
90
|
-
import
|
|
91
|
-
import { t as
|
|
92
|
-
import { TAB_ACTIVATION_MODES as
|
|
93
|
-
import
|
|
94
|
-
import
|
|
95
|
-
import
|
|
96
|
-
import { ARROW_KEYS as
|
|
84
|
+
import ur from "./lib/lazy-show/lazy-show.js";
|
|
85
|
+
import dr from "./lib/popover/popover.js";
|
|
86
|
+
import { DROPDOWN_PADDING_CLASSES as fr } from "./lib/dropdown/dropdown-constants.js";
|
|
87
|
+
import pr from "./lib/dropdown/dropdown.js";
|
|
88
|
+
import mr from "./lib/dropdown/dropdown-separator.js";
|
|
89
|
+
import hr from "./lib/emoji/emoji.js";
|
|
90
|
+
import { INPUT_SIZES as gr, INPUT_TYPES as _r } from "./lib/input/input-constants.js";
|
|
91
|
+
import vr from "./lib/input/input.js";
|
|
92
|
+
import { t as yr } from "./EmojiPicker-D46lLRMp.js";
|
|
93
|
+
import { TAB_ACTIVATION_MODES as br, TAB_GROUP_KINDS as xr, TAB_LIST_IMPORTANCE_MODIFIERS as Sr, TAB_LIST_KIND_MODIFIERS as Cr, TAB_LIST_SIZES as wr, TAB_LIST_SIZE_MODIFIERS as Tr, TAB_SPREADS as Er } from "./lib/tab/tabs-constants.js";
|
|
94
|
+
import Dr from "./lib/tab/tab-group.js";
|
|
95
|
+
import Or from "./lib/tab/tab.js";
|
|
96
|
+
import kr from "./lib/tab/tab-panel.js";
|
|
97
|
+
import { ARROW_KEYS as Ar, CDN_URL as jr, EMOJIS_PER_ROW as Mr, EMOJI_PICKER_SKIN_TONE_MODIFIERS as Nr } from "./lib/emoji-picker/emoji-picker-constants.js";
|
|
97
98
|
import "./lib/emoji-picker/index.js";
|
|
98
|
-
import
|
|
99
|
+
import Pr from "./lib/emoji-text-wrapper/emoji-text-wrapper.js";
|
|
99
100
|
import "./lib/emoji-text-wrapper/index.js";
|
|
100
|
-
import { EMPTY_STATE_SIZE_MODIFIERS as
|
|
101
|
-
import
|
|
101
|
+
import { EMPTY_STATE_SIZE_MODIFIERS as Fr } from "./lib/empty-state/empty-state-constants.js";
|
|
102
|
+
import Ir from "./lib/empty-state/empty-state.js";
|
|
102
103
|
import "./lib/empty-state/index.js";
|
|
103
|
-
import
|
|
104
|
+
import Lr from "./lib/filter-pill/filter-pill.js";
|
|
104
105
|
import "./lib/filter-pill/index.js";
|
|
105
|
-
import
|
|
106
|
+
import Rr from "./lib/hovercard/hovercard.js";
|
|
106
107
|
import "./lib/hovercard/index.js";
|
|
107
|
-
import { ILLUSTRATION_NAMES as
|
|
108
|
-
import
|
|
108
|
+
import { ILLUSTRATION_NAMES as zr } from "./lib/illustration/illustration-constants.js";
|
|
109
|
+
import Br from "./lib/illustration/illustration.js";
|
|
109
110
|
import "./lib/illustration/index.js";
|
|
110
|
-
import
|
|
111
|
+
import Vr from "./lib/image-viewer/image-viewer.js";
|
|
111
112
|
import "./lib/image-viewer/index.js";
|
|
112
|
-
import
|
|
113
|
-
import { SHORTCUTS_ALIASES_LIST as
|
|
113
|
+
import Hr from "./lib/keyboard-shortcut/keyboard-shortcut.js";
|
|
114
|
+
import { SHORTCUTS_ALIASES_LIST as Ur } from "./lib/keyboard-shortcut/keyboard-shortcut-constants.js";
|
|
114
115
|
import "./lib/keyboard-shortcut/index.js";
|
|
115
|
-
import
|
|
116
|
+
import Wr from "./lib/list-item-group/list-item-group.js";
|
|
116
117
|
import "./lib/list-item-group/index.js";
|
|
117
118
|
import "./lib/loader/index.js";
|
|
118
|
-
import { MODAL_BANNER_KINDS as
|
|
119
|
-
import
|
|
119
|
+
import { MODAL_BANNER_KINDS as Gr, MODAL_KIND_MODIFIERS as Kr } from "./lib/modal/modal-constants.js";
|
|
120
|
+
import qr from "./lib/modal/modal.js";
|
|
120
121
|
import "./lib/modal/index.js";
|
|
121
|
-
import { DT_MODE_ISLAND_TYPES as
|
|
122
|
-
import
|
|
122
|
+
import { DT_MODE_ISLAND_TYPES as Jr } from "./lib/mode-island/mode-island-constants.js";
|
|
123
|
+
import Yr from "./lib/mode-island/mode-island.js";
|
|
123
124
|
import "./lib/mode-island/index.js";
|
|
124
|
-
import
|
|
125
|
+
import Xr from "./lib/pagination/pagination.js";
|
|
125
126
|
import "./lib/pagination/index.js";
|
|
126
|
-
import { PROGRESS_CIRCLE_KINDS as
|
|
127
|
-
import
|
|
127
|
+
import { PROGRESS_CIRCLE_KINDS as Zr, PROGRESS_CIRCLE_KIND_DEFAULT as Qr, PROGRESS_CIRCLE_SIZES as $r, PROGRESS_CIRCLE_SIZE_DEFAULT as ei } from "./lib/progress-circle/progress-circle-constants.js";
|
|
128
|
+
import ti from "./lib/progress-circle/progress-circle.js";
|
|
128
129
|
import "./lib/progress-circle/index.js";
|
|
129
|
-
import { PROSE_ALLOWED_ATTRIBUTES as
|
|
130
|
-
import
|
|
130
|
+
import { PROSE_ALLOWED_ATTRIBUTES as ni, PROSE_DENSITY_MODIFIERS as ri, PROSE_DISALLOWED_ELEMENTS as ii, PROSE_SIZE_MODIFIERS as ai } from "./lib/prose/prose-constants.js";
|
|
131
|
+
import oi from "./lib/prose/prose.js";
|
|
131
132
|
import "./lib/prose/index.js";
|
|
132
|
-
import { RADIO_INPUT_VALIDATION_CLASSES as
|
|
133
|
-
import
|
|
133
|
+
import { RADIO_INPUT_VALIDATION_CLASSES as si } from "./lib/radio/radio-constants.js";
|
|
134
|
+
import ci from "./lib/radio/radio.js";
|
|
134
135
|
import "./lib/radio/index.js";
|
|
135
|
-
import
|
|
136
|
+
import li from "./lib/radio-group/radio-group.js";
|
|
136
137
|
import "./lib/radio-group/index.js";
|
|
137
|
-
import { a as
|
|
138
|
-
import { t as
|
|
139
|
-
import { t as
|
|
140
|
-
import
|
|
138
|
+
import { a as ui, c as di, d as fi, f as pi, i as mi, l as hi, n as gi, o as _i, p as vi, r as yi, s as bi, t as xi, u as Si } from "./ResizableUtils-C9qEZRN5.js";
|
|
139
|
+
import { t as Ci } from "./Resizable-EY7mWluI.js";
|
|
140
|
+
import { t as wi } from "./ResizableHandle-v-oU-sj-.js";
|
|
141
|
+
import Ti from "./lib/resizable/resizable-panel.js";
|
|
141
142
|
import "./lib/resizable/index.js";
|
|
142
|
-
import { t as
|
|
143
|
-
import { RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as
|
|
143
|
+
import { t as Ei } from "./RichTextEditor-D8DfONFm.js";
|
|
144
|
+
import { RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as Di, RICH_TEXT_EDITOR_OUTPUT_FORMATS as Oi } from "./lib/rich-text-editor/rich-text-editor-constants.js";
|
|
144
145
|
import "./lib/rich-text-editor/index.js";
|
|
145
|
-
import { ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS as
|
|
146
|
-
import
|
|
146
|
+
import { ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS as ki, ROOT_LAYOUT_SIDEBAR_POSITIONS as Ai } from "./lib/root-layout/root-layout-constants.js";
|
|
147
|
+
import ji from "./lib/root-layout/root-layout.js";
|
|
147
148
|
import "./lib/root-layout/index.js";
|
|
148
|
-
import { t as
|
|
149
|
+
import { t as Mi } from "./Scroller-B1xwv6TG.js";
|
|
149
150
|
import "./lib/scroller/index.js";
|
|
150
|
-
import { SEGMENTED_CONTROL_ACTIVATION_MODES as
|
|
151
|
-
import
|
|
152
|
-
import
|
|
151
|
+
import { SEGMENTED_CONTROL_ACTIVATION_MODES as Ni, SEGMENTED_CONTROL_ACTIVATION_MODE_DEFAULT as Pi, SEGMENTED_CONTROL_CONTEXT_KEY as Fi, SEGMENTED_CONTROL_FOCUS_KEY as Ii, SEGMENTED_CONTROL_ORIENTATIONS as Li, SEGMENTED_CONTROL_ORIENTATION_DEFAULT as Ri, SEGMENTED_CONTROL_SELECT_KEY as zi, SEGMENTED_CONTROL_SIZES as Bi, SEGMENTED_CONTROL_SIZE_DEFAULT as Vi, SEGMENTED_CONTROL_SIZE_MODIFIERS as Hi, SEGMENTED_CONTROL_SPREADS as Ui, SEGMENTED_CONTROL_SPREAD_DEFAULT as Wi } from "./lib/segmented-control/segmented-control-constants.js";
|
|
152
|
+
import Gi from "./lib/segmented-control/segmented-control.js";
|
|
153
|
+
import Ki from "./lib/segmented-control/segmented-control-item.js";
|
|
153
154
|
import "./lib/segmented-control/index.js";
|
|
154
|
-
import { SELECT_SIZE_MODIFIERS as
|
|
155
|
-
import
|
|
155
|
+
import { SELECT_SIZE_MODIFIERS as qi, SELECT_STATE_MODIFIERS as Ji } from "./lib/select-menu/select-menu-constants.js";
|
|
156
|
+
import Yi from "./lib/select-menu/select-menu.js";
|
|
156
157
|
import "./lib/select-menu/index.js";
|
|
157
|
-
import { a as
|
|
158
|
+
import { a as Xi, i as Zi, n as Qi, o as $i, r as ea, s as ta, t as na } from "./Slider-Du45PVLU.js";
|
|
158
159
|
import "./lib/slider/index.js";
|
|
159
|
-
import { SPLIT_BUTTON_ICON_SIZES as
|
|
160
|
-
import
|
|
160
|
+
import { SPLIT_BUTTON_ICON_SIZES as ra } from "./lib/split-button/split-button-constants.js";
|
|
161
|
+
import ia from "./lib/split-button/split-button.js";
|
|
161
162
|
import "./lib/split-button/index.js";
|
|
162
|
-
import { DT_TEXT_LIST_DEFAULT_TYPE as
|
|
163
|
-
import { t as
|
|
164
|
-
import { t as
|
|
163
|
+
import { DT_TEXT_LIST_DEFAULT_TYPE as aa, DT_TEXT_LIST_GAP as oa, DT_TEXT_LIST_MARKERS as sa, DT_TEXT_LIST_MARKER_TONES as ca, DT_TEXT_LIST_ORDERED_MARKERS as la, DT_TEXT_LIST_TYPES as ua, DT_TEXT_LIST_UNORDERED_MARKERS as da } from "./lib/text-list/text-list-constants.js";
|
|
164
|
+
import { t as fa } from "./TextList-7RwngSie.js";
|
|
165
|
+
import { t as pa } from "./TextListItem-D0UmIR_q.js";
|
|
165
166
|
import "./lib/text-list/index.js";
|
|
166
|
-
import { TOAST_MIN_DURATION as
|
|
167
|
-
import { t as
|
|
167
|
+
import { TOAST_MIN_DURATION as ma, TOAST_ROLES as ha } from "./lib/toast/toast-constants.js";
|
|
168
|
+
import { t as ga } from "./Toast-BNhGD6l8.js";
|
|
168
169
|
import "./lib/toast/index.js";
|
|
169
|
-
import { TOGGLE_CHECKED_VALUES as
|
|
170
|
-
import
|
|
170
|
+
import { TOGGLE_CHECKED_VALUES as _a, TOGGLE_SIZE_MODIFIERS as va } from "./lib/toggle/toggle-constants.js";
|
|
171
|
+
import ya from "./lib/toggle/toggle.js";
|
|
171
172
|
import "./lib/toggle/index.js";
|
|
172
|
-
import
|
|
173
|
-
import { CHIP_SIZES as
|
|
174
|
-
import
|
|
173
|
+
import ba from "./lib/combobox-with-popover/combobox-with-popover.js";
|
|
174
|
+
import { CHIP_SIZES as xa, CHIP_TOP_POSITION as Sa, MULTI_SELECT_SIZES as Ca } from "./lib/combobox-multi-select/combobox-multi-select-constants.js";
|
|
175
|
+
import wa from "./lib/combobox-multi-select/combobox-multi-select.js";
|
|
175
176
|
import "./lib/combobox-multi-select/index.js";
|
|
176
177
|
import "./lib/combobox-with-popover/index.js";
|
|
177
|
-
import { DtTooltipDirective as
|
|
178
|
+
import { DtTooltipDirective as Ta } from "./lib/tooltip-directive/tooltip.js";
|
|
178
179
|
import "./lib/tooltip-directive/index.js";
|
|
179
|
-
import { DtScrollbarDirective as
|
|
180
|
+
import { DtScrollbarDirective as Ea } from "./lib/scrollbar-directive/scrollbar.js";
|
|
180
181
|
import "./lib/scrollbar-directive/index.js";
|
|
181
|
-
import { DtModeDirective as
|
|
182
|
+
import { DtModeDirective as Da } from "./lib/mode-directive/mode.js";
|
|
182
183
|
import "./lib/mode-directive/index.js";
|
|
183
|
-
import { DtFocusgroupDirective as
|
|
184
|
+
import { DtFocusgroupDirective as Oa } from "./lib/focusgroup-directive/focusgroup.js";
|
|
184
185
|
import "./lib/focusgroup-directive/index.js";
|
|
185
|
-
import { DtFocustrapDirective as
|
|
186
|
+
import { DtFocustrapDirective as ka } from "./lib/focustrap-directive/focustrap.js";
|
|
186
187
|
import "./lib/focustrap-directive/index.js";
|
|
187
|
-
import { MOTION_TEXT_ANIMATION_MODES as
|
|
188
|
-
import
|
|
188
|
+
import { MOTION_TEXT_ANIMATION_MODES as Aa, MOTION_TEXT_MODE_SETTINGS as ja, MOTION_TEXT_SPEEDS as Ma, MOTION_TEXT_TIMING_PRESETS as Na, MOTION_TEXT_TRACKS as Pa } from "./lib/motion-text/motion-text-constants.js";
|
|
189
|
+
import Fa from "./lib/motion-text/motion-text.js";
|
|
189
190
|
import "./lib/motion-text/index.js";
|
|
190
|
-
export {
|
|
191
|
+
export { Ar as ARROW_KEYS, Le as AVATAR_CHROMA, Re as AVATAR_FAMILY_COUNT, ze as AVATAR_GROUP_VALIDATOR, Be as AVATAR_HUE_OFFSETS, Ve as AVATAR_ICON_SIZES, He as AVATAR_KIND_MODIFIERS, Ue as AVATAR_LIGHTNESS, We as AVATAR_PRESENCE_SIZE_MODIFIERS, Ge as AVATAR_PRESENCE_STATES, Ke as AVATAR_SIZE_MODIFIERS, qe as AVATAR_VARIANT_COUNT, Qe as BADGE_DECORATION_MODIFIERS, $e as BADGE_KIND_MODIFIERS, et as BADGE_TYPE_MODIFIERS, dn as BREADCRUMBS_INVERTED_MODIFIER, fn as BREADCRUMB_ITEM_SELECTED_MODIFIER, hn as BUTTON_GROUP_ALIGNMENT, kt as BUTTON_ICON_SIZES, At as BUTTON_IMPORTANCE_MODIFIERS, jt as BUTTON_KIND_MODIFIERS, Mt as BUTTON_SIZE_MODIFIERS, Nt as BUTTON_TYPES, jr as CDN_URL, xn as CHIP_CLOSE_BUTTON_SIZE_MODIFIERS, Sn as CHIP_ICON_SIZES, xa as CHIP_SIZES, Cn as CHIP_SIZE_MODIFIERS, Sa as CHIP_TOP_POSITION, Ln as COMBOBOX_LABEL_SIZES, t as COMPONENT_SIZES, It as CRITICAL, hi as DEFAULT_PANEL_SIZE, o as DEFAULT_PREFIX, s as DEFAULT_VALIDATION_MESSAGE_TYPE, c as DESCRIPTION_SIZE_MODIFIERS, l as DESCRIPTION_SIZE_TYPES, fr as DROPDOWN_PADDING_CLASSES, Yt as DT_BOX_AS_VALUES, Xt as DT_BOX_BORDER_COLOR_VALUES, Zt as DT_BOX_BORDER_RADIUS_VALUES, Qt as DT_BOX_BORDER_WIDTH_VALUES, $t as DT_BOX_INSET_SIDE_VALUES, en as DT_BOX_INSET_VALUES, tn as DT_BOX_LAYOUT_VALUES, nn as DT_BOX_OVERFLOW_VALUES, rn as DT_BOX_POSITION_VALUES, an as DT_BOX_SCROLLBAR_VALUES, on as DT_BOX_SHADOW_VALUES, sn as DT_BOX_SPACING_VALUES, cn as DT_BOX_SURFACE_VALUES, ln as DT_BOX_Z_INDEX_VALUES, cr as DT_DESCRIPTION_LIST_DIRECTION, Jr as DT_MODE_ISLAND_TYPES, Rn as DT_STACK_DIRECTION, zn as DT_STACK_GAP, Bn as DT_STACK_RESPONSIVE_BREAKPOINTS, aa as DT_TEXT_LIST_DEFAULT_TYPE, oa as DT_TEXT_LIST_GAP, sa as DT_TEXT_LIST_MARKERS, ca as DT_TEXT_LIST_MARKER_TONES, la as DT_TEXT_LIST_ORDERED_MARKERS, ua as DT_TEXT_LIST_TYPES, da as DT_TEXT_LIST_UNORDERED_MARKERS, Dt as DialtoneLocalization, Ze as DtAvatar, it as DtBadge, Jt as DtBanner, un as DtBox, pn as DtBreadcrumbItem, mn as DtBreadcrumbs, Gt as DtButton, gn as DtButtonGroup, _n as DtCard, K as DtCheckableInputMixin, vn as DtCheckbox, bn as DtCheckboxGroup, wn as DtChip, Tn as DtCodeblock, En as DtCollapsible, In as DtCombobox, wa as DtComboboxMultiSelect, ba as DtComboboxWithPopover, e as DtDOMMixin, nr as DtDatepicker, lr as DtDescriptionList, pr as DtDropdown, mr as DtDropdownSeparator, hr as DtEmoji, yr as DtEmojiPicker, Pr as DtEmojiTextWrapper, Ir as DtEmptyState, Lr as DtFilterPill, Oa as DtFocusgroupDirective, ka as DtFocustrapDirective, q as DtGroupableInputMixin, Rr as DtHovercard, rt as DtIcon, Br as DtIllustration, Vr as DtImageViewer, vr as DtInput, yn as DtInputGroup, X as DtInputGroupMixin, J as DtInputMixin, kn as DtItemLayout, Z as DtKeyboardListNavigationMixin, Hr as DtKeyboardShortcut, ur as DtLazyShow, Wt as DtLink, An as DtListItem, Wr as DtListItemGroup, Ot as DtLoader, qr as DtModal, Q as DtModalMixin, Da as DtModeDirective, Yr as DtModeIsland, ae as DtModeMixin, Fa as DtMotionText, qt as DtNotice, Kt as DtNoticeAction, Tt as DtNoticeContent, st as DtNoticeIcon, Xr as DtPagination, dr as DtPopover, Ie as DtPresence, ti as DtProgressCircle, oi as DtProse, ci as DtRadio, li as DtRadioGroup, Ci as DtResizable, wi as DtResizableHandle, Ti as DtResizablePanel, Ei as DtRichTextEditor, ji as DtRootLayout, Ea as DtScrollbarDirective, Mi as DtScroller, Gi as DtSegmentedControl, Ki as DtSegmentedControlItem, Yi as DtSelectMenu, Fn as DtSkeleton, Pn as DtSkeletonListItem, ie as DtSkeletonMixin, Nn as DtSkeletonParagraph, jn as DtSkeletonShape, Mn as DtSkeletonText, na as DtSlider, ia as DtSplitButton, Vn as DtStack, Or as DtTab, Dr as DtTabGroup, kr as DtTabPanel, wt as DtText, fa as DtTextList, pa as DtTextListItem, ga as DtToast, ya as DtToggle, tr as DtTooltip, Ta as DtTooltipDirective, Y as DtValidationMessages, Mr as EMOJIS_PER_ROW, Nr as EMOJI_PICKER_SKIN_TONE_MODIFIERS, Fr as EMPTY_STATE_SIZE_MODIFIERS, u as EVENT_KEYNAMES, d as HTML_ELEMENT_TYPE, tt as ICON_NAMES, Pt as ICON_POSITION_MODIFIERS, nt as ICON_SIZE_MODIFIERS, zr as ILLUSTRATION_NAMES, gr as INPUT_SIZES, _r as INPUT_TYPES, Ft as INVALID_COMBINATION, f as LABEL_SIZE_MODIFIERS, r as LAYOUT_PERCENT_VALUES, i as LAYOUT_SIZE_VALUES, a as LAYOUT_VALUES, Lt as LINK_KIND_MODIFIERS, Rt as LINK_VARIANTS, Dn as LIST_ITEM_NAVIGATION_TYPES, On as LIST_ITEM_TYPES, Et as LOADER_KIND_MODIFIERS, zt as MENTION, Si as MIN_PANEL_SIZE_PX, Gr as MODAL_BANNER_KINDS, Kr as MODAL_KIND_MODIFIERS, Aa as MOTION_TEXT_ANIMATION_MODES, ja as MOTION_TEXT_MODE_SETTINGS, Ma as MOTION_TEXT_SPEEDS, Na as MOTION_TEXT_TIMING_PRESETS, Pa as MOTION_TEXT_TRACKS, Ca as MULTI_SELECT_SIZES, Bt as MUTED, at as NOTICE_KINDS, ot as NOTICE_ROLES, qn as POPOVER_APPEND_TO_VALUES, Jn as POPOVER_CONTENT_WIDTHS, Yn as POPOVER_DIRECTIONS, Xn as POPOVER_HEADER_FOOTER_PADDING_CLASSES, Zn as POPOVER_INITIAL_FOCUS_STRINGS, Qn as POPOVER_PADDING_CLASSES, $n as POPOVER_ROLES, er as POPOVER_STICKY_VALUES, Vt as POSITIVE, Pe as PRESENCE_STATES, Fe as PRESENCE_STATES_LIST, Zr as PROGRESS_CIRCLE_KINDS, Qr as PROGRESS_CIRCLE_KIND_DEFAULT, $r as PROGRESS_CIRCLE_SIZES, ei as PROGRESS_CIRCLE_SIZE_DEFAULT, ni as PROSE_ALLOWED_ATTRIBUTES, ri as PROSE_DENSITY_MODIFIERS, ii as PROSE_DISALLOWED_ELEMENTS, ai as PROSE_SIZE_MODIFIERS, si as RADIO_INPUT_VALIDATION_CLASSES, fi as RESIZABLE_CONTEXT_KEY, pi as RESIZABLE_HANDLE_CENTER_OFFSET_PX, Di as RICH_TEXT_EDITOR_AUTOFOCUS_TYPES, Oi as RICH_TEXT_EDITOR_OUTPUT_FORMATS, ki as ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS, Ai as ROOT_LAYOUT_SIDEBAR_POSITIONS, Ni as SEGMENTED_CONTROL_ACTIVATION_MODES, Pi as SEGMENTED_CONTROL_ACTIVATION_MODE_DEFAULT, Fi as SEGMENTED_CONTROL_CONTEXT_KEY, Ii as SEGMENTED_CONTROL_FOCUS_KEY, Li as SEGMENTED_CONTROL_ORIENTATIONS, Ri as SEGMENTED_CONTROL_ORIENTATION_DEFAULT, zi as SEGMENTED_CONTROL_SELECT_KEY, Bi as SEGMENTED_CONTROL_SIZES, Vi as SEGMENTED_CONTROL_SIZE_DEFAULT, Hi as SEGMENTED_CONTROL_SIZE_MODIFIERS, Ui as SEGMENTED_CONTROL_SPREADS, Wi as SEGMENTED_CONTROL_SPREAD_DEFAULT, qi as SELECT_SIZE_MODIFIERS, Ji as SELECT_STATE_MODIFIERS, Ur as SHORTCUTS_ALIASES_LIST, $ as SKELETON_HEADING_HEIGHTS, ee as SKELETON_RIPPLE_DURATION, te as SKELETON_SHAPES, ne as SKELETON_SHAPE_SIZES, re as SKELETON_TEXT_TYPES, Qi as SLIDER_DEFAULT_LARGE_STEP, ea as SLIDER_EDGE_CLAMP_TOLERANCE_PX, Zi as SLIDER_FILL_ORIGINS, Xi as SLIDER_ORIENTATIONS, $i as SLIDER_READOUT_EDGE_CLAMP_TOLERANCE_PX, ta as SLIDER_READOUT_MODES, ra as SPLIT_BUTTON_ICON_SIZES, br as TAB_ACTIVATION_MODES, xr as TAB_GROUP_KINDS, Sr as TAB_LIST_IMPORTANCE_MODIFIERS, Cr as TAB_LIST_KIND_MODIFIERS, wr as TAB_LIST_SIZES, Tr as TAB_LIST_SIZE_MODIFIERS, Er as TAB_SPREADS, ct as TEXT_ALIGN_MODIFIERS, lt as TEXT_BOX_TRIM_MODIFIERS, ut as TEXT_DENSITY_MODIFIERS, dt as TEXT_FAMILY_MODIFIERS, ft as TEXT_FONT_SIZE_MODIFIERS, pt as TEXT_HEADLINE_ONLY_SIZES, n as TEXT_HEADLINE_SIZES, mt as TEXT_ITALIC_CLASS, ht as TEXT_KIND_MODIFIERS, gt as TEXT_LINE_CLAMP_CLASS, _t as TEXT_NUMERIC_CLASS, vt as TEXT_SIZE_MODIFIERS, yt as TEXT_STRENGTH_MODIFIERS, bt as TEXT_TONE_MODIFIERS, xt as TEXT_TRUNCATE_CLASS, St as TEXT_VARIANT_MODIFIERS, Ct as TEXT_WRAP_MODIFIERS, ma as TOAST_MIN_DURATION, ha as TOAST_ROLES, _a as TOGGLE_CHECKED_VALUES, va as TOGGLE_SIZE_MODIFIERS, Hn as TOOLTIP_DELAY_MS, Un as TOOLTIP_DIRECTIONS, Wn as TOOLTIP_HIDE_ON_CLICK_VARIANTS, Gn as TOOLTIP_KIND_MODIFIERS, Kn as TOOLTIP_STICKY_VALUES, p as VALIDATION_MESSAGE_TYPES, Ht as WARNING, vi as buildHandleId, h as capitalizeFirstLetter, ue as codeToEmojiData, Je as colorToFamilyVariant, Ye as computeAvatarHex, de as customEmojiAssetUrl, g as debounce, fe as defaultEmojiAssetUrl, _ as disableRootScrolling, oe as durationInHHMM, pe as emojiFileExtensionLarge, me as emojiFileExtensionSmall, he as emojiImageUrlLarge, ge as emojiImageUrlSmall, _e as emojiJson, ve as emojiRegex, ye as emojiShortCodeRegex, be as emojiVersion, v as enableRootScrolling, y as extractNonListeners, b as extractVueListeners, x as filterFormattedMessages, xe as filterValidShortCodes, Se as findEmojis, S as findFirstFocusableNode, Ce as findShortCodes, C as flushPromises, rr as formatLong, ir as formatMedium, w as formatMessages, ar as formatNoYear, or as formatNumerical, sr as formatShort, se as getDateMedium, we as getEmojiData, Te as getEmojiShortCode, Ut as getLinkKindModifier, T as getPhoneNumberRegex, E as getRandomElement, Xe as getRandomFamilyVariant, D as getRandomInt, O as getUniqueString, k as getValidationState, A as hasFormattedMessageOfType, xi as hasPercentageMinSize, j as hasSlotContent, M as htmlFragment, gi as invalidateTokenCache, yi as isCSSValue, N as isEmailAddress, P as isOutOfViewPort, mi as isPercentageValue, F as isPhoneNumber, I as isURL, ui as isValidSizing, L as javaHashCode, R as kebabCaseToPascalCase, z as linkRegex, _i as parseSizeToPixels, B as pascalCaseToKebabCase, bi as pixelsToPercentage, ce as relativeDate, V as removeClassStyleAttrs, H as returnFirstEl, U as safeConcatStrings, Ee as setCustomEmojiJson, De as setCustomEmojiUrl, le as setDateLocale, Oe as setEmojiAssetUrlLarge, ke as setEmojiAssetUrlSmall, Ae as shortcodeToEmojiData, je as stringToUnicode, W as toFluentKeyString, Me as unicodeToString, di as validateContainerSize, Ne as validateCustomEmojiJson, m as validationMessageValidator, G as warnIfUnmounted };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/validators/index.cjs`),t=require(`../../common/utils/index.cjs`),n=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),r=require(`../../Presence-DLM3JR-n.cjs`),i=require(`./avatar-constants.cjs`),a=require(`./utils.cjs`);let o=require(`vue`);var s=typeof CSS<`u`&&CSS.supports?.(`background`,`oklch(0.5 0.1 0)`),c={name:`DtAvatar`,components:{DtPresence:r.t},props:{id:{type:String,default(){return t.getUniqueString()}},seed:{type:String,default:void 0},family:{type:Number,default:void 0,validator:e=>e>=1&&e<=12},variant:{type:Number,default:void 0,validator:e=>e>=0&&e<10},color:{type:String,default:void 0},size:{type:[String,Number],default:300,validator:e.ordinalSizeValidator(i.AVATAR_SIZE_MODIFIERS)},avatarClass:{type:[String,Array,Object],default:``},canvasClass:{type:[String,Array,Object],default:``},iconClass:{type:[String,Array,Object],default:``},presence:{type:String,default:i.AVATAR_PRESENCE_STATES.NONE,validator:e=>Object.values(i.AVATAR_PRESENCE_STATES).includes(e)},presenceProps:{type:Object,default:()=>({})},group:{type:Number,default:void 0,validator:e=>i.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:``},interactive:{type:Boolean,default:!1},clickable:{type:Boolean,default:null},iconAriaLabel:{type:String,default:void 0},iconOnly:{type:Boolean,default:!1},deactivated:{type:Boolean,default:!1}},emits:[`click`],data(){return{AVATAR_SIZE_MODIFIERS:i.AVATAR_SIZE_MODIFIERS,AVATAR_KIND_MODIFIERS:i.AVATAR_KIND_MODIFIERS,AVATAR_PRESENCE_SIZE_MODIFIERS:i.AVATAR_PRESENCE_SIZE_MODIFIERS,imageLoadedSuccessfully:null,formattedInitials:``,initializing:!1,hasSlotContent:t.hasSlotContent,anchorHue:0}},computed:{resolvedInteractive(){return this.clickable??this.interactive},
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/validators/index.cjs`),t=require(`../../common/utils/index.cjs`),n=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),r=require(`../../Presence-DLM3JR-n.cjs`),i=require(`./avatar-constants.cjs`),a=require(`./utils.cjs`);let o=require(`vue`);var s=typeof CSS<`u`&&CSS.supports?.(`background`,`oklch(0.5 0.1 0)`),c={name:`DtAvatar`,components:{DtPresence:r.t},props:{id:{type:String,default(){return t.getUniqueString()}},seed:{type:String,default:void 0},family:{type:Number,default:void 0,validator:e=>e>=1&&e<=12},variant:{type:Number,default:void 0,validator:e=>e>=0&&e<10},color:{type:String,default:void 0},size:{type:[String,Number],default:300,validator:e.ordinalSizeValidator(i.AVATAR_SIZE_MODIFIERS)},avatarClass:{type:[String,Array,Object],default:``},canvasClass:{type:[String,Array,Object],default:``},iconClass:{type:[String,Array,Object],default:``},presence:{type:String,default:i.AVATAR_PRESENCE_STATES.NONE,validator:e=>Object.values(i.AVATAR_PRESENCE_STATES).includes(e)},presenceProps:{type:Object,default:()=>({})},group:{type:Number,default:void 0,validator:e=>i.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:``},interactive:{type:Boolean,default:!1},clickable:{type:Boolean,default:null},iconAriaLabel:{type:String,default:void 0},iconOnly:{type:Boolean,default:!1},deactivated:{type:Boolean,default:!1}},emits:[`click`],data(){return{AVATAR_SIZE_MODIFIERS:i.AVATAR_SIZE_MODIFIERS,AVATAR_KIND_MODIFIERS:i.AVATAR_KIND_MODIFIERS,AVATAR_PRESENCE_SIZE_MODIFIERS:i.AVATAR_PRESENCE_SIZE_MODIFIERS,imageLoadedSuccessfully:null,formattedInitials:``,initializing:!1,hasSlotContent:t.hasSlotContent,anchorHue:0}},computed:{resolvedInteractive(){return this.clickable??this.interactive},randomFamilyVariant(){return i.getRandomFamilyVariant(this.seed)},iconDataQa(){return`dt-avatar-icon`},avatarClasses(){return[`d-avatar`,i.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.resolvedInteractive,"d-avatar--presence":this.presence&&!this.showGroup,"d-avatar--icon-only":this.iconOnly,"d-avatar--deactivated":this.deactivated}]},showGroup(){return i.AVATAR_GROUP_VALIDATOR(this.group)},formattedGroup(){let 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(),s||this.readAnchorHue()},methods:{hasOverlayIcon(){return t.hasSlotContent(this.$slots.overlayIcon)},isIconType(){return t.hasSlotContent(this.$slots.icon)},getFamily(){if(!this.isIconType()){if(this.family!==void 0)return this.family;if(this.color!==void 0){let e=i.colorToFamilyVariant(this.color);if(e)return e.family}return this.randomFamilyVariant.family}},getVariant(){if(!this.isIconType()){if(this.variant!==void 0)return this.variant;if(this.color!==void 0){let e=i.colorToFamilyVariant(this.color);if(e)return e.variant}return this.randomFamilyVariant.variant}},avatarStyles(){let e=[];if(!s&&!this.isIconType()&&this.getFamily()&&this.getVariant()!==void 0){let t=i.computeAvatarHex(this.getFamily(),this.getVariant(),this.anchorHue);e.push({"--avatar-color-background":t})}return e.length>0?e:void 0},overlayClasses(){return[`d-avatar__overlay`,this.overlayClass,{"d-avatar__overlay-icon":this.hasOverlayIcon()}]},async setImageListeners(){await this.$nextTick();let e=this.$refs.avatarImage;e&&(e.addEventListener(`load`,()=>this._loadedImageEventHandler(e),{once:!0}),e.addEventListener(`error`,()=>this._erroredImageEventHandler(e),{once:!0}))},formatInitials(){let e=a.extractInitialsFromName(this.fullName),t=String(this.validatedSize);t===`xs`||t===`100`?this.formattedInitials=``:t===`sm`||t===`150`||t===`200`?this.formattedInitials=e[0]:this.formattedInitials=e},readAnchorHue(){try{let 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.resolvedInteractive&&this.$emit(`click`,e)}}},l={class:`d-avatar__canvas-inner`},u=[`src`,`alt`],d=[`aria-label`,`data-qa`],f={key:1,class:`d-avatar__overlay-text`},p=[`aria-label`];function m(e,t,n,r,i,a){let s=(0,o.resolveComponent)(`dt-presence`);return(0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)(a.resolvedInteractive?`button`:`div`),{id:n.id,class:(0,o.normalizeClass)(a.avatarClasses),style:(0,o.normalizeStyle)(a.avatarStyles()),"data-avatar-family":n.iconOnly?void 0:a.getFamily(),"data-avatar-variant":n.iconOnly?void 0:a.getVariant(),"data-qa":`dt-avatar`,type:a.resolvedInteractive?`button`:void 0,onClick:a.handleClick},{default:(0,o.withCtx)(()=>[(0,o.createElementVNode)(`div`,{ref:`canvas`,class:(0,o.normalizeClass)([n.canvasClass,`d-avatar__canvas`,{"d-avatar--image-loaded":i.imageLoadedSuccessfully}])},[(0,o.createElementVNode)(`div`,l,[a.showImage?((0,o.openBlock)(),(0,o.createElementBlock)(`img`,{key:0,ref:`avatarImage`,class:`d-avatar__image`,"data-qa":`dt-avatar-image`,src:n.imageSrc,alt:n.imageAlt},null,8,u)):a.isIconType()?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,{key:1,class:(0,o.normalizeClass)([n.iconClass,i.AVATAR_KIND_MODIFIERS.icon]),"aria-label":a.resolvedInteractive?n.iconAriaLabel:``,"data-qa":a.iconDataQa},[(0,o.renderSlot)(e.$slots,`icon`)],10,d)):((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:2,class:(0,o.normalizeClass)([i.AVATAR_KIND_MODIFIERS.initials])},(0,o.toDisplayString)(i.formattedInitials),3))])],2),a.hasOverlayIcon()||n.overlayText?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,{key:0,class:(0,o.normalizeClass)(a.overlayClasses())},[a.hasOverlayIcon()?(0,o.renderSlot)(e.$slots,`overlayIcon`,{key:0}):n.overlayText?((0,o.openBlock)(),(0,o.createElementBlock)(`p`,f,(0,o.toDisplayString)(n.overlayText),1)):(0,o.createCommentVNode)(``,!0)],2)):(0,o.createCommentVNode)(``,!0),a.showGroup?((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{key:1,class:`d-avatar__count`,"data-qa":`dt-avatar-count`,role:`img`,"aria-label":`${n.group} participants`},(0,o.toDisplayString)(a.formattedGroup),9,p)):(0,o.createCommentVNode)(``,!0),n.presence&&!a.showGroup&&i.AVATAR_PRESENCE_SIZE_MODIFIERS[n.size]?((0,o.openBlock)(),(0,o.createBlock)(s,(0,o.mergeProps)({key:2,presence:n.presence,class:[`d-avatar__presence`,i.AVATAR_PRESENCE_SIZE_MODIFIERS[n.size]]},n.presenceProps,{"data-qa":`dt-presence`}),null,16,[`presence`,`class`])):(0,o.createCommentVNode)(``,!0)]),_:3},8,[`id`,`class`,`style`,`data-avatar-family`,`data-avatar-variant`,`type`,`onClick`])}var h=n.t(c,[[`render`,m]]);exports.default=h;
|
|
2
2
|
//# sourceMappingURL=avatar.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.cjs","names":[],"sources":["../../../components/Avatar/Avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"resolvedInteractive ? '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=\"resolvedInteractive ? '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=\"resolvedInteractive ? 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 { ordinalSizeValidator } from '@/common/validators';\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 './AvatarConstants';\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 name: 'DtAvatar',\n components: { DtPresence },\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 * 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 * @deprecated Use seed or family/variant instead.\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\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(AVATAR_SIZE_MODIFIERS),\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 * 'active', or 'dnd'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active, dnd\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 interactive,\n * emits a click event when clicked.\n */\n interactive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use interactive instead.\n */\n clickable: {\n type: Boolean,\n default: null,\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 resolvedInteractive () {\n return this.clickable ?? this.interactive;\n },\n\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 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.resolvedInteractive,\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 const baseStyles = [];\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.resolvedInteractive) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avatar.cjs","names":[],"sources":["../../../components/Avatar/Avatar.vue"],"sourcesContent":["<template>\n <component\n :is=\"resolvedInteractive ? 'button' : 'div'\"\n :id=\"id\"\n :class=\"avatarClasses\"\n :style=\"avatarStyles()\"\n :data-avatar-family=\"!iconOnly ? getFamily() : undefined\"\n :data-avatar-variant=\"!iconOnly ? getVariant() : undefined\"\n data-qa=\"dt-avatar\"\n :type=\"resolvedInteractive ? '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=\"resolvedInteractive ? 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 { ordinalSizeValidator } from '@/common/validators';\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 './AvatarConstants';\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 name: 'DtAvatar',\n components: { DtPresence },\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 * 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 * @deprecated Use seed or family/variant instead.\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\n */\n size: {\n type: [String, Number],\n default: 300,\n validator: ordinalSizeValidator(AVATAR_SIZE_MODIFIERS),\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 * 'active', or 'dnd'. By default, it's null and nothing is shown.\n * @values null, busy, away, offline, active, dnd\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 interactive,\n * emits a click event when clicked.\n */\n interactive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * @deprecated Use interactive instead.\n */\n clickable: {\n type: Boolean,\n default: null,\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 resolvedInteractive () {\n return this.clickable ?? this.interactive;\n },\n\n /**\n * Random family/variant, cached so unseeded avatars keep one color\n * instead of re-rolling on every render. Recomputes only when seed changes.\n */\n randomFamilyVariant () {\n return getRandomFamilyVariant(this.seed);\n },\n\n iconDataQa () {\n return 'dt-avatar-icon';\n },\n\n avatarClasses () {\n return [\n 'd-avatar',\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.resolvedInteractive,\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 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 // These read $slots, which is not reactive, so they must not be cached as computeds.\n hasOverlayIcon () {\n return hasSlotContent(this.$slots.overlayIcon);\n },\n\n isIconType () {\n return hasSlotContent(this.$slots.icon);\n },\n\n /**\n * Compute family from props, color prop, or random\n */\n getFamily () {\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 = this.randomFamilyVariant;\n return random.family;\n },\n\n /**\n * Compute variant from props, color prop, or random\n */\n getVariant () {\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 = this.randomFamilyVariant;\n return random.variant;\n },\n\n /**\n * Compute inline styles for fallback color in browsers that don't support oklch()\n */\n avatarStyles () {\n const baseStyles = [];\n\n // Only compute hex fallback for browsers that don't support oklch()\n if (!supportsOklch && !this.isIconType() && this.getFamily() && this.getVariant() !== undefined) {\n const fallbackHex = computeAvatarHex(this.getFamily(), this.getVariant(), 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 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.resolvedInteractive) return;\n this.$emit('click', e);\n },\n },\n};\n</script>\n"],"mappings":"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"}
|