@dialpad/dialtone-vue 2.124.0 → 2.125.1-alpha.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.
Files changed (269) hide show
  1. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.js +33 -0
  2. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.js.map +1 -0
  3. package/dist/chunks/dropdown-SMWaTWyF.js +357 -0
  4. package/dist/chunks/dropdown-SMWaTWyF.js.map +1 -0
  5. package/dist/chunks/dropdown_constants-EUcDxBrX.js +9 -0
  6. package/dist/chunks/dropdown_constants-EUcDxBrX.js.map +1 -0
  7. package/dist/chunks/icon_constants-OpYAAKwF.js +16 -0
  8. package/dist/chunks/icon_constants-OpYAAKwF.js.map +1 -0
  9. package/dist/chunks/index-nIyl_PL6.js +372 -0
  10. package/dist/chunks/index-nIyl_PL6.js.map +1 -0
  11. package/dist/chunks/index-o4OMWMuv.js +244 -0
  12. package/dist/chunks/index-o4OMWMuv.js.map +1 -0
  13. package/dist/chunks/input-1tm09l_-.js +273 -0
  14. package/dist/chunks/input-1tm09l_-.js.map +1 -0
  15. package/dist/chunks/input_group-zcAq3DQl.js +141 -0
  16. package/dist/chunks/input_group-zcAq3DQl.js.map +1 -0
  17. package/dist/chunks/keyboard_list_navigation-F0O8nht0.js +197 -0
  18. package/dist/chunks/keyboard_list_navigation-F0O8nht0.js.map +1 -0
  19. package/dist/chunks/link_constants-vIUB92L4.js +16 -0
  20. package/dist/chunks/link_constants-vIUB92L4.js.map +1 -0
  21. package/dist/chunks/list_item_constants-LTUc74pD.js +13 -0
  22. package/dist/chunks/list_item_constants-LTUc74pD.js.map +1 -0
  23. package/dist/chunks/modal-VuMFkZFH.js +82 -0
  24. package/dist/chunks/modal-VuMFkZFH.js.map +1 -0
  25. package/dist/chunks/notice_action-9NmtQRai.js +182 -0
  26. package/dist/chunks/notice_action-9NmtQRai.js.map +1 -0
  27. package/dist/chunks/notice_constants-c--hBFQw.js +6 -0
  28. package/dist/chunks/notice_constants-c--hBFQw.js.map +1 -0
  29. package/dist/chunks/popover_constants-qjlEkroB.js +114 -0
  30. package/dist/chunks/popover_constants-qjlEkroB.js.map +1 -0
  31. package/dist/chunks/sr_only_close_button-JGole5Xi.js +86 -0
  32. package/dist/chunks/sr_only_close_button-JGole5Xi.js.map +1 -0
  33. package/dist/chunks/stack_constants-u7tNqGtc.js +13 -0
  34. package/dist/chunks/stack_constants-u7tNqGtc.js.map +1 -0
  35. package/dist/chunks/tab-Qm9LVkYj.js +346 -0
  36. package/dist/chunks/tab-Qm9LVkYj.js.map +1 -0
  37. package/dist/component-documentation.json +1 -1
  38. package/dist/dialtone-vue.js +356 -10364
  39. package/dist/dialtone-vue.js.map +1 -0
  40. package/dist/lib/attachment-carousel.js +250 -0
  41. package/dist/lib/attachment-carousel.js.map +1 -0
  42. package/dist/lib/avatar.js +369 -0
  43. package/dist/lib/avatar.js.map +1 -0
  44. package/dist/lib/badge.js +169 -0
  45. package/dist/lib/badge.js.map +1 -0
  46. package/dist/lib/banner.js +200 -0
  47. package/dist/lib/banner.js.map +1 -0
  48. package/dist/lib/breadcrumbs.js +138 -0
  49. package/dist/lib/breadcrumbs.js.map +1 -0
  50. package/dist/lib/button-group.js +45 -0
  51. package/dist/lib/button-group.js.map +1 -0
  52. package/dist/lib/button.js +328 -0
  53. package/dist/lib/button.js.map +1 -0
  54. package/dist/lib/callbar-button-with-popover.js +235 -0
  55. package/dist/lib/callbar-button-with-popover.js.map +1 -0
  56. package/dist/lib/callbar-button.js +175 -0
  57. package/dist/lib/callbar-button.js.map +1 -0
  58. package/dist/lib/callbox.js +142 -0
  59. package/dist/lib/callbox.js.map +1 -0
  60. package/dist/lib/card.js +72 -0
  61. package/dist/lib/card.js.map +1 -0
  62. package/dist/lib/checkbox-group.js +117 -0
  63. package/dist/lib/checkbox-group.js.map +1 -0
  64. package/dist/lib/checkbox.js +117 -0
  65. package/dist/lib/checkbox.js.map +1 -0
  66. package/dist/lib/chip.js +186 -0
  67. package/dist/lib/chip.js.map +1 -0
  68. package/dist/lib/codeblock.js +29 -0
  69. package/dist/lib/codeblock.js.map +1 -0
  70. package/dist/lib/collapsible.js +313 -0
  71. package/dist/lib/collapsible.js.map +1 -0
  72. package/dist/lib/combobox-multi-select.js +433 -0
  73. package/dist/lib/combobox-multi-select.js.map +1 -0
  74. package/dist/lib/combobox-with-popover.js +341 -0
  75. package/dist/lib/combobox-with-popover.js.map +1 -0
  76. package/dist/lib/combobox.js +19 -0
  77. package/dist/lib/combobox.js.map +1 -0
  78. package/dist/lib/constants.js +53 -0
  79. package/dist/lib/constants.js.map +1 -0
  80. package/dist/lib/contact-info.js +145 -0
  81. package/dist/lib/contact-info.js.map +1 -0
  82. package/dist/lib/contact-row.js +203 -0
  83. package/dist/lib/contact-row.js.map +1 -0
  84. package/dist/lib/datepicker.js +552 -0
  85. package/dist/lib/datepicker.js.map +1 -0
  86. package/dist/lib/dates.js +57 -0
  87. package/dist/lib/dates.js.map +1 -0
  88. package/dist/lib/description-list.js +83 -0
  89. package/dist/lib/description-list.js.map +1 -0
  90. package/dist/lib/dropdown.js +45 -0
  91. package/dist/lib/dropdown.js.map +1 -0
  92. package/dist/lib/editor.js +527 -0
  93. package/dist/lib/editor.js.map +1 -0
  94. package/dist/{emoji_picker-kiTOKaq8.js → lib/emoji-picker.js} +30 -11
  95. package/dist/lib/emoji-picker.js.map +1 -0
  96. package/dist/lib/emoji-row.js +83 -0
  97. package/dist/lib/emoji-row.js.map +1 -0
  98. package/dist/{emoji_text_wrapper-48ClwKvf.js → lib/emoji-text-wrapper.js} +19 -13
  99. package/dist/lib/emoji-text-wrapper.js.map +1 -0
  100. package/dist/lib/emoji.js +11 -0
  101. package/dist/lib/emoji.js.map +1 -0
  102. package/dist/lib/feed-item-row.js +207 -0
  103. package/dist/lib/feed-item-row.js.map +1 -0
  104. package/dist/lib/feed-pill.js +142 -0
  105. package/dist/lib/feed-pill.js.map +1 -0
  106. package/dist/lib/general-row.js +379 -0
  107. package/dist/lib/general-row.js.map +1 -0
  108. package/dist/lib/group-row.js +115 -0
  109. package/dist/lib/group-row.js.map +1 -0
  110. package/dist/lib/grouped-chip.js +45 -0
  111. package/dist/lib/grouped-chip.js.map +1 -0
  112. package/dist/lib/hovercard.js +194 -0
  113. package/dist/lib/hovercard.js.map +1 -0
  114. package/dist/lib/icon.js +82 -0
  115. package/dist/lib/icon.js.map +1 -0
  116. package/dist/lib/image-viewer.js +171 -0
  117. package/dist/lib/image-viewer.js.map +1 -0
  118. package/dist/lib/input-group.js +90 -0
  119. package/dist/lib/input-group.js.map +1 -0
  120. package/dist/lib/input.js +455 -0
  121. package/dist/lib/input.js.map +1 -0
  122. package/dist/lib/item-layout.js +39 -0
  123. package/dist/lib/item-layout.js.map +1 -0
  124. package/dist/lib/ivr-node.js +195 -0
  125. package/dist/lib/ivr-node.js.map +1 -0
  126. package/dist/lib/keyboard-shortcut.js +100 -0
  127. package/dist/lib/keyboard-shortcut.js.map +1 -0
  128. package/dist/lib/lazy-show.js +77 -0
  129. package/dist/lib/lazy-show.js.map +1 -0
  130. package/dist/lib/link.js +69 -0
  131. package/dist/lib/link.js.map +1 -0
  132. package/dist/lib/list-item-group.js +59 -0
  133. package/dist/lib/list-item-group.js.map +1 -0
  134. package/dist/lib/list-item.js +195 -0
  135. package/dist/lib/list-item.js.map +1 -0
  136. package/dist/{message_input.js → lib/message-input.js} +107 -55
  137. package/dist/lib/message-input.js.map +1 -0
  138. package/dist/lib/mixins.js +17 -0
  139. package/dist/lib/mixins.js.map +1 -0
  140. package/dist/lib/modal.js +324 -0
  141. package/dist/lib/modal.js.map +1 -0
  142. package/dist/lib/notice.js +158 -0
  143. package/dist/lib/notice.js.map +1 -0
  144. package/dist/lib/pagination.js +142 -0
  145. package/dist/lib/pagination.js.map +1 -0
  146. package/dist/lib/popover.js +779 -0
  147. package/dist/lib/popover.js.map +1 -0
  148. package/dist/lib/presence.js +60 -0
  149. package/dist/lib/presence.js.map +1 -0
  150. package/dist/lib/radio-group.js +97 -0
  151. package/dist/lib/radio-group.js.map +1 -0
  152. package/dist/lib/radio.js +111 -0
  153. package/dist/lib/radio.js.map +1 -0
  154. package/dist/lib/rich-text-editor.js +920 -0
  155. package/dist/lib/rich-text-editor.js.map +1 -0
  156. package/dist/lib/root-layout.js +127 -0
  157. package/dist/lib/root-layout.js.map +1 -0
  158. package/dist/lib/select-menu.js +243 -0
  159. package/dist/lib/select-menu.js.map +1 -0
  160. package/dist/lib/settings-menu-button.js +65 -0
  161. package/dist/lib/settings-menu-button.js.map +1 -0
  162. package/dist/lib/skeleton.js +574 -0
  163. package/dist/lib/skeleton.js.map +1 -0
  164. package/dist/lib/stack.js +118 -0
  165. package/dist/lib/stack.js.map +1 -0
  166. package/dist/lib/tabs.js +93 -0
  167. package/dist/lib/tabs.js.map +1 -0
  168. package/dist/lib/time-pill.js +43 -0
  169. package/dist/lib/time-pill.js.map +1 -0
  170. package/dist/lib/toast.js +226 -0
  171. package/dist/lib/toast.js.map +1 -0
  172. package/dist/lib/toggle.js +169 -0
  173. package/dist/lib/toggle.js.map +1 -0
  174. package/dist/{directives.js → lib/tooltip-directive.js} +24 -17
  175. package/dist/lib/tooltip-directive.js.map +1 -0
  176. package/dist/lib/tooltip.js +376 -0
  177. package/dist/lib/tooltip.js.map +1 -0
  178. package/dist/lib/top-banner-info.js +60 -0
  179. package/dist/lib/top-banner-info.js.map +1 -0
  180. package/dist/lib/unread-pill.js +61 -0
  181. package/dist/lib/unread-pill.js.map +1 -0
  182. package/dist/lib/utils.js +175 -0
  183. package/dist/lib/utils.js.map +1 -0
  184. package/dist/lib/validation-messages.js +83 -0
  185. package/dist/lib/validation-messages.js.map +1 -0
  186. package/dist/lib/validators.js +12 -0
  187. package/dist/lib/validators.js.map +1 -0
  188. package/dist/style.css +1 -1
  189. package/dist/types/common/{constants.d.ts → constants/index.d.ts} +1 -1
  190. package/dist/types/common/constants/index.d.ts.map +1 -0
  191. package/dist/types/common/{dates.d.ts → dates/index.d.ts} +1 -1
  192. package/dist/types/common/dates/index.d.ts.map +1 -0
  193. package/dist/types/common/{emoji.d.ts → emoji/index.d.ts} +1 -1
  194. package/dist/types/common/{emoji.d.ts.map → emoji/index.d.ts.map} +1 -1
  195. package/dist/types/common/{utils.d.ts → utils/index.d.ts} +1 -1
  196. package/dist/types/common/utils/index.d.ts.map +1 -0
  197. package/dist/types/common/{validators.d.ts → validators/index.d.ts} +1 -1
  198. package/dist/types/common/validators/index.d.ts.map +1 -0
  199. package/dist/types/components/avatar/avatar.vue.d.ts +1 -1
  200. package/dist/types/components/button/button.vue.d.ts +2 -2
  201. package/dist/types/components/card/card.vue.d.ts +1 -1
  202. package/dist/types/components/checkbox/checkbox.vue.d.ts +7 -7
  203. package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  204. package/dist/types/components/chip/chip.vue.d.ts +2 -2
  205. package/dist/types/components/collapsible/collapsible.vue.d.ts +3 -3
  206. package/dist/types/components/combobox/combobox.vue.d.ts +7 -8
  207. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  208. package/dist/types/components/dropdown/dropdown.vue.d.ts +1 -1
  209. package/dist/types/components/emoji/emoji.vue.d.ts +1 -1
  210. package/dist/types/components/emoji_picker/modules/emoji_selector.vue.d.ts +1 -219
  211. package/dist/types/components/icon/icon.vue.d.ts +20 -16
  212. package/dist/types/components/icon/icon.vue.d.ts.map +1 -1
  213. package/dist/types/components/icon/icon_constants.d.ts +2 -0
  214. package/dist/types/components/icon/icon_constants.d.ts.map +1 -1
  215. package/dist/types/components/icon/index.d.ts +1 -1
  216. package/dist/types/components/input_group/input_group.vue.d.ts +15 -6
  217. package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
  218. package/dist/types/components/list_item_group/list_item_group.vue.d.ts +1 -1
  219. package/dist/types/components/modal/modal.vue.d.ts +7 -2
  220. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  221. package/dist/types/components/notice/notice_action.vue.d.ts +3 -1
  222. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  223. package/dist/types/components/popover/popover_header_footer.vue.d.ts +1 -1
  224. package/dist/types/components/radio/radio.vue.d.ts +2 -12
  225. package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
  226. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +1 -1
  227. package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +1 -1
  228. package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -3
  229. package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +2 -2
  230. package/dist/types/components/skeleton/skeleton-text.vue.d.ts +8 -3
  231. package/dist/types/components/skeleton/skeleton-text.vue.d.ts.map +1 -1
  232. package/dist/types/components/skeleton/skeleton.vue.d.ts +1 -1
  233. package/dist/types/components/toggle/toggle.vue.d.ts +1 -1
  234. package/dist/types/components/tooltip/tooltip.vue.d.ts +2 -2
  235. package/dist/types/index.d.ts +36 -29
  236. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
  237. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +2 -2
  238. package/dist/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -1
  239. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +2 -2
  240. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +9 -0
  241. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  242. package/package.json +19 -59
  243. package/CHANGELOG.json +0 -1
  244. package/CHANGELOG.md +0 -2890
  245. package/dist/dialtone-vue.cjs +0 -5
  246. package/dist/directives.cjs +0 -1
  247. package/dist/emoji.cjs +0 -1
  248. package/dist/emoji.js +0 -35
  249. package/dist/emoji_picker-njWWAm6V.cjs +0 -1
  250. package/dist/emoji_text_wrapper-ZlynvHnd.cjs +0 -1
  251. package/dist/index-OF94C6nQ.js +0 -142833
  252. package/dist/index-Wx7Jagcr.cjs +0 -1
  253. package/dist/message_input.cjs +0 -1
  254. package/dist/rich_text_editor-9sMob7ck.js +0 -16478
  255. package/dist/rich_text_editor-Eh5kYokw.cjs +0 -97
  256. package/dist/tooltip-88U5vFMA.js +0 -2516
  257. package/dist/tooltip-i2wxFIIi.cjs +0 -21
  258. package/dist/types/common/constants.d.ts.map +0 -1
  259. package/dist/types/common/dates.d.ts.map +0 -1
  260. package/dist/types/common/utils.d.ts.map +0 -1
  261. package/dist/types/common/validators.d.ts.map +0 -1
  262. package/dist/types/components/emoji_picker/emojis/index.d.ts +0 -50
  263. package/dist/types/components/emoji_picker/emojis/index.d.ts.map +0 -1
  264. package/dist/types/directives.d.ts +0 -2
  265. package/dist/types/directives.d.ts.map +0 -1
  266. package/dist/types/emoji.d.ts +0 -5
  267. package/dist/types/emoji.d.ts.map +0 -1
  268. package/dist/types/message_input.d.ts +0 -3
  269. package/dist/types/message_input.d.ts.map +0 -1
@@ -0,0 +1,115 @@
1
+ import { DtIcon as r } from "./icon.js";
2
+ import { safeConcatStrings as o } from "./utils.js";
3
+ import { n } from "../chunks/_plugin-vue2_normalizer-u6G_3nkj.js";
4
+ import { DtRecipeGeneralRow as i } from "./general-row.js";
5
+ import "@dialpad/dialtone-icons/vue2";
6
+ import "../chunks/icon_constants-OpYAAKwF.js";
7
+ import "@dialpad/dialtone-icons/icons.json";
8
+ import "./skeleton.js";
9
+ import "./constants.js";
10
+ import "vue";
11
+ import "./emoji-text-wrapper.js";
12
+ import "../chunks/index-o4OMWMuv.js";
13
+ import "emoji-regex";
14
+ import "emoji-toolkit/emoji_strategy.json";
15
+ import "./badge.js";
16
+ import "./button.js";
17
+ import "../chunks/link_constants-vIUB92L4.js";
18
+ import "./tooltip.js";
19
+ import "../chunks/popover_constants-qjlEkroB.js";
20
+ import "tippy.js";
21
+ import "./lazy-show.js";
22
+ const a = {
23
+ name: "DtRecipeGroupRow",
24
+ components: {
25
+ DtIcon: r,
26
+ DtRecipeGeneralRow: i
27
+ },
28
+ inheritAttrs: !1,
29
+ props: {
30
+ /**
31
+ * Screen reader will read out the number of users in the group using this text. Ex: "2 users"
32
+ */
33
+ groupCountText: {
34
+ type: String,
35
+ default: ""
36
+ },
37
+ /**
38
+ * Names of the group members
39
+ */
40
+ names: {
41
+ type: String,
42
+ required: !0
43
+ },
44
+ /**
45
+ * Number of unread messages
46
+ */
47
+ unreadCount: {
48
+ type: String,
49
+ default: null
50
+ },
51
+ /**
52
+ * Text shown when the unread count is hovered.
53
+ */
54
+ unreadCountTooltip: {
55
+ type: String,
56
+ default: null
57
+ },
58
+ /**
59
+ * Styles the row with an increased font weight to convey it has unreads. This must be true to see
60
+ * the unread count badge.
61
+ */
62
+ hasUnreads: {
63
+ type: Boolean,
64
+ default: !1
65
+ },
66
+ /**
67
+ * Determines if the row is selected
68
+ */
69
+ selected: {
70
+ type: Boolean,
71
+ default: !1
72
+ },
73
+ /**
74
+ * Shows an "is typing" animation over the avatar when true.
75
+ */
76
+ isTyping: {
77
+ type: Boolean,
78
+ default: !1
79
+ }
80
+ },
81
+ emits: [
82
+ /**
83
+ * Native click event on the row itself
84
+ *
85
+ * @event click
86
+ * @type {PointerEvent | KeyboardEvent}
87
+ */
88
+ "click"
89
+ ],
90
+ computed: {
91
+ ariaLabel() {
92
+ return o([this.groupCountText, this.names]);
93
+ }
94
+ }
95
+ };
96
+ var p = function() {
97
+ var t = this, e = t._self._c;
98
+ return e("dt-recipe-general-row", t._g(t._b({ attrs: { description: t.names, "aria-label": t.ariaLabel, "unread-count": t.unreadCount, "has-unreads": t.hasUnreads, "unread-count-tooltip": t.unreadCountTooltip, selected: t.selected, "is-typing": t.isTyping }, scopedSlots: t._u([{ key: "left", fn: function() {
99
+ return [e("dt-icon", { attrs: { name: "users", size: "300" } })];
100
+ }, proxy: !0 }]) }, "dt-recipe-general-row", t.$attrs, !1), t.$listeners));
101
+ }, s = [], l = /* @__PURE__ */ n(
102
+ a,
103
+ p,
104
+ s,
105
+ !1,
106
+ null,
107
+ null,
108
+ null,
109
+ null
110
+ );
111
+ const L = l.exports;
112
+ export {
113
+ L as DtRecipeGroupRow
114
+ };
115
+ //# sourceMappingURL=group-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-row.js","sources":["../../recipes/leftbar/group_row/group_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :description=\"names\"\n :aria-label=\"ariaLabel\"\n :unread-count=\"unreadCount\"\n :has-unreads=\"hasUnreads\"\n :unread-count-tooltip=\"unreadCountTooltip\"\n :selected=\"selected\"\n :is-typing=\"isTyping\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n >\n <template #left>\n <dt-icon\n name=\"users\"\n size=\"300\"\n />\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport DtIcon from '@/components/icon/icon.vue';\nimport { safeConcatStrings } from '@/common/utils';\n\nexport default {\n name: 'DtRecipeGroupRow',\n\n components: {\n DtIcon,\n DtRecipeGeneralRow,\n },\n\n inheritAttrs: false,\n\n props: {\n\n /**\n * Screen reader will read out the number of users in the group using this text. Ex: \"2 users\"\n */\n groupCountText: {\n type: String,\n default: '',\n },\n\n /**\n * Names of the group members\n */\n names: {\n type: String,\n required: true,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n ],\n\n computed: {\n ariaLabel () {\n return safeConcatStrings([this.groupCountText, this.names]);\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtIcon","DtRecipeGeneralRow","safeConcatStrings"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,QAAAC;AAAA,IACA,oBAAAC;AAAA,EACA;AAAA,EAEA,cAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,oBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,YAAA;AACA,aAAAC,EAAA,CAAA,KAAA,gBAAA,KAAA,KAAA,CAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,45 @@
1
+ import { n as o } from "../chunks/_plugin-vue2_normalizer-u6G_3nkj.js";
2
+ import { DtChip as n } from "./chip.js";
3
+ import "./utils.js";
4
+ import "./constants.js";
5
+ import "vue";
6
+ import "./button.js";
7
+ import "../chunks/link_constants-vIUB92L4.js";
8
+ import "./icon.js";
9
+ import "@dialpad/dialtone-icons/vue2";
10
+ import "../chunks/icon_constants-OpYAAKwF.js";
11
+ import "@dialpad/dialtone-icons/icons.json";
12
+ import "./skeleton.js";
13
+ const r = {
14
+ name: "DtRecipeGroupedChip",
15
+ components: {
16
+ DtChip: n
17
+ },
18
+ computed: {}
19
+ };
20
+ var i = function() {
21
+ var t = this, e = t._self._c;
22
+ return e("div", { staticClass: "dt-grouped-chip", attrs: { "data-qa": "grouped-chip" } }, [e("dt-chip", { staticClass: "dt-chip-content dt-chip-content--left", attrs: { "hide-close": !0, interactive: !1, "content-class": "d-fs100", size: "xs", "grouped-chip": !0 }, scopedSlots: t._u([t.$slots.leftIcon ? { key: "icon", fn: function() {
23
+ return [t.$slots.leftIcon ? e("div", { attrs: { "data-qa": "left-grouped-chip-icon" } }, [t._t("leftIcon")], 2) : t._e()];
24
+ }, proxy: !0 } : null, { key: "default", fn: function() {
25
+ return [t.$slots.leftContent ? e("div", { attrs: { "data-qa": "left-grouped-chip-content" } }, [t._t("leftContent")], 2) : t._e()];
26
+ }, proxy: !0 }], null, !0) }), e("dt-chip", { staticClass: "dt-chip-content dt-chip-content--right", attrs: { "hide-close": !0, interactive: !1, "content-class": "d-fs100", size: "xs", "grouped-chip": !0 }, scopedSlots: t._u([{ key: "icon", fn: function() {
27
+ return [t.$slots.rightIcon ? e("div", { attrs: { "data-qa": "right-grouped-chip-icon" } }, [t._t("rightIcon")], 2) : t._e()];
28
+ }, proxy: !0 }, { key: "default", fn: function() {
29
+ return [t.$slots.rightContent ? e("div", { attrs: { "data-qa": "right-grouped-chip-content" } }, [t._t("rightContent")], 2) : t._e()];
30
+ }, proxy: !0 }], null, !0) })], 1);
31
+ }, c = [], s = /* @__PURE__ */ o(
32
+ r,
33
+ i,
34
+ c,
35
+ !1,
36
+ null,
37
+ null,
38
+ null,
39
+ null
40
+ );
41
+ const y = s.exports;
42
+ export {
43
+ y as DtRecipeGroupedChip
44
+ };
45
+ //# sourceMappingURL=grouped-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouped-chip.js","sources":["../../recipes/chips/grouped_chip/grouped_chip.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"grouped-chip\"\n class=\"dt-grouped-chip\"\n >\n <dt-chip\n :hide-close=\"true\"\n :interactive=\"false\"\n content-class=\"d-fs100\"\n size=\"xs\"\n :grouped-chip=\"true\"\n class=\"dt-chip-content dt-chip-content--left\"\n >\n <template\n v-if=\"$slots.leftIcon\"\n #icon\n >\n <!-- @slot Slot for left chip icon information -->\n <div\n v-if=\"$slots.leftIcon\"\n data-qa=\"left-grouped-chip-icon\"\n >\n <slot name=\"leftIcon\" />\n </div>\n </template>\n <template #default>\n <div\n v-if=\"$slots.leftContent\"\n data-qa=\"left-grouped-chip-content\"\n >\n <!-- @slot Slot for left chip content information -->\n <slot name=\"leftContent\" />\n </div>\n </template>\n </dt-chip>\n\n <!-- Right side split chip -->\n <dt-chip\n :hide-close=\"true\"\n :interactive=\"false\"\n content-class=\"d-fs100\"\n size=\"xs\"\n :grouped-chip=\"true\"\n class=\"dt-chip-content dt-chip-content--right\"\n >\n <template #icon>\n <div\n v-if=\"$slots.rightIcon\"\n data-qa=\"right-grouped-chip-icon\"\n >\n <!-- @slot Slot for right chip content information -->\n <slot name=\"rightIcon\" />\n </div>\n </template>\n <template #default>\n <div\n v-if=\"$slots.rightContent\"\n data-qa=\"right-grouped-chip-content\"\n >\n <!-- @slot Slot for right chip content information -->\n <slot name=\"rightContent\" />\n </div>\n </template>\n </dt-chip>\n </div>\n</template>\n\n<script>\nimport { DtChip } from '@/components/chip';\n\nexport default {\n name: 'DtRecipeGroupedChip',\n\n components: {\n DtChip,\n },\n\n computed: {},\n};\n</script>\n\n<style lang=\"less\">\n.dt-grouped-chip {\n display: inline-flex;\n white-space: nowrap;\n background-color: unset;\n background-image: unset;\n}\n\n.dt-chip-content {\n font-variant-numeric: tabular-nums;\n\n &--left {\n border-top-left-radius: var(--dt-size-radius-pill);\n border-bottom-left-radius: var(--dt-size-radius-pill);\n background-color: var(--dt-color-surface-moderate-opaque);\n max-width: var(--dt-size-730);\n }\n\n &--right {\n border-top-right-radius: var(--dt-size-radius-pill);\n border-bottom-right-radius: var(--dt-size-radius-pill);\n background-color: var(--dt-color-purple-200);\n max-width: var(--dt-size-730);\n }\n}\n</style>\n"],"names":["_sfc_main","DtChip"],"mappings":";;;;;;;;;;;;AAsEA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,QAAAC;AAAA,EACA;AAAA,EAEA,UAAA,CAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,194 @@
1
+ import { getUniqueString as p } from "./utils.js";
2
+ import { h as u, T as f, P as m, e as d } from "../chunks/popover_constants-qjlEkroB.js";
3
+ import { n as _ } from "../chunks/_plugin-vue2_normalizer-u6G_3nkj.js";
4
+ import { DtPopover as y } from "./popover.js";
5
+ import "./constants.js";
6
+ import "vue";
7
+ import "tippy.js";
8
+ import "@linusborg/vue-simple-portal";
9
+ import "../chunks/modal-VuMFkZFH.js";
10
+ import "./button.js";
11
+ import "../chunks/link_constants-vIUB92L4.js";
12
+ import "./icon.js";
13
+ import "@dialpad/dialtone-icons/vue2";
14
+ import "../chunks/icon_constants-OpYAAKwF.js";
15
+ import "@dialpad/dialtone-icons/icons.json";
16
+ import "./skeleton.js";
17
+ import "../chunks/sr_only_close_button-JGole5Xi.js";
18
+ import "./lazy-show.js";
19
+ const v = /* @__PURE__ */ function() {
20
+ const e = { value: null };
21
+ let t, n, r = null, o = null;
22
+ function s(a) {
23
+ if (o) {
24
+ const i = Date.now() - r + 100;
25
+ t && clearTimeout(t), o !== a && (t = setTimeout(
26
+ () => {
27
+ e.value !== null && (r = Date.now()), e.value = null;
28
+ },
29
+ i
30
+ ), n && clearTimeout(n), n = setTimeout(
31
+ () => {
32
+ e.value = a, o = a;
33
+ },
34
+ i
35
+ ));
36
+ } else
37
+ n = setTimeout(() => {
38
+ e.value = a, o = a;
39
+ }, u);
40
+ }
41
+ function c() {
42
+ n && (clearTimeout(n), n = null), r = Date.now(), t = setTimeout(() => {
43
+ e.value = null, o = null;
44
+ }, u);
45
+ }
46
+ let l = null;
47
+ return () => (l === null && (l = { current: e, enter: s, leave: c }), l);
48
+ }(), T = {
49
+ name: "DtHovercard",
50
+ components: {
51
+ DtPopover: y
52
+ },
53
+ props: {
54
+ /**
55
+ * Fade transition when the content display is toggled.
56
+ * @type boolean
57
+ * @values true, false
58
+ */
59
+ transition: {
60
+ type: Boolean,
61
+ default: !1
62
+ },
63
+ /**
64
+ * If the popover does not fit in the direction described by "placement",
65
+ * it will attempt to change its direction to the "fallbackPlacements".
66
+ * @see https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements"
67
+ */
68
+ fallbackPlacements: {
69
+ type: Array,
70
+ default: () => ["auto"]
71
+ },
72
+ /**
73
+ * The direction the popover displays relative to the anchor.
74
+ * @see https://atomiks.github.io/tippyjs/v6/all-props/#placement"
75
+ * @values top, top-start, top-end,
76
+ * right, right-start, right-end,
77
+ * left, left-start, left-end,
78
+ * bottom, bottom-start, bottom-end,
79
+ * auto, auto-start, auto-end
80
+ */
81
+ placement: {
82
+ type: String,
83
+ default: "top-start",
84
+ validator(e) {
85
+ return f.includes(e);
86
+ }
87
+ },
88
+ /**
89
+ * Padding size class for the popover content.
90
+ * @values none, small, medium, large
91
+ */
92
+ padding: {
93
+ type: String,
94
+ default: "large",
95
+ validator: (e) => Object.keys(m).some((t) => t === e)
96
+ },
97
+ /**
98
+ * Displaces the content box from its anchor element
99
+ * by the specified number of pixels.
100
+ * @see https://atomiks.github.io/tippyjs/v6/all-props/#offset"
101
+ */
102
+ offset: {
103
+ type: Array,
104
+ default: () => [0, 16]
105
+ },
106
+ /**
107
+ * The id of the tooltip
108
+ */
109
+ id: {
110
+ type: String,
111
+ default() {
112
+ return p();
113
+ }
114
+ },
115
+ /**
116
+ * Additional class name for the header content wrapper element.
117
+ */
118
+ headerClass: {
119
+ type: [String, Array, Object],
120
+ default: ""
121
+ },
122
+ /**
123
+ * Additional class name for the footer content wrapper element.
124
+ */
125
+ footerClass: {
126
+ type: [String, Array, Object],
127
+ default: ""
128
+ },
129
+ /**
130
+ * Additional class name for the dialog element.
131
+ */
132
+ dialogClass: {
133
+ type: [String, Array, Object],
134
+ default: ""
135
+ },
136
+ /**
137
+ * Additional class name for the content wrapper element.
138
+ */
139
+ contentClass: {
140
+ type: [String, Array, Object],
141
+ default: ""
142
+ },
143
+ /**
144
+ * Sets the element to which the popover is going to append to.
145
+ * 'body' will append to the nearest body (supports shadow DOM).
146
+ * @values 'body', 'parent', HTMLElement,
147
+ */
148
+ appendTo: {
149
+ type: [HTMLElement, String],
150
+ default: "body",
151
+ validator: (e) => d.includes(e) || e instanceof HTMLElement
152
+ }
153
+ },
154
+ emits: [
155
+ /**
156
+ * Emitted when popover is shown or hidden
157
+ *
158
+ * @event opened
159
+ * @type {Boolean | Array}
160
+ */
161
+ "opened"
162
+ ],
163
+ data() {
164
+ return {
165
+ timer: v()
166
+ };
167
+ }
168
+ };
169
+ var S = function() {
170
+ var t = this, n = t._self._c;
171
+ return n("dt-popover", { attrs: { id: t.id, placement: t.placement, "content-class": t.contentClass, "fallback-placements": t.fallbackPlacements, padding: t.padding, transition: t.transition ? "fade" : null, offset: t.offset, modal: !1, "initial-focus-element": "none", "header-class": t.headerClass, "footer-class": t.footerClass, "append-to": t.appendTo, hovercard: !0, timer: t.timer, "data-qa": "dt-hovercard" }, on: { opened: (r) => t.$emit("opened", r) }, scopedSlots: t._u([{ key: "anchor", fn: function({ attrs: r }) {
172
+ return [t._t("anchor", null, null, r)];
173
+ } }, { key: "content", fn: function() {
174
+ return [t._t("content")];
175
+ }, proxy: !0 }, { key: "headerContent", fn: function() {
176
+ return [t._t("headerContent")];
177
+ }, proxy: !0 }, { key: "footerContent", fn: function() {
178
+ return [t._t("footerContent")];
179
+ }, proxy: !0 }], null, !0) });
180
+ }, g = [], C = /* @__PURE__ */ _(
181
+ T,
182
+ S,
183
+ g,
184
+ !1,
185
+ null,
186
+ null,
187
+ null,
188
+ null
189
+ );
190
+ const q = C.exports;
191
+ export {
192
+ q as DtHovercard
193
+ };
194
+ //# sourceMappingURL=hovercard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hovercard.js","sources":["../../components/hovercard/timer.js","../../components/hovercard/hovercard.vue"],"sourcesContent":["import { TOOLTIP_DELAY_MS } from '@/components/tooltip/index.js';\n\nexport default (function () {\n const current = { value: null };\n let timerLeave, timerEnter;\n let start = null;\n let prevCard = null;\n\n // Handles the timer for when the event that opens the hovercard\n // is triggered.\n // If no hovercard is active, it sets a delay of TOOLTIP_DELAY_MS.\n // If there was an active hovercard, the delay depends on the time it takes\n // to move from one anchor to the other.\n function enter (id) {\n if (prevCard) {\n const time = Date.now() - start + 100;\n if (timerLeave) clearTimeout(timerLeave);\n if (prevCard !== id) {\n timerLeave = setTimeout(\n () => {\n if (current.value !== null) {\n start = Date.now();\n }\n current.value = null;\n },\n time,\n );\n if (timerEnter) clearTimeout(timerEnter);\n timerEnter = setTimeout(\n () => {\n current.value = id;\n prevCard = id;\n },\n time,\n );\n }\n } else {\n timerEnter = setTimeout(() => {\n current.value = id;\n prevCard = id;\n }, TOOLTIP_DELAY_MS);\n }\n }\n\n // Handles the timer for when the event that closes the hovercard\n // is triggered.\n function leave () {\n if (timerEnter) {\n clearTimeout(timerEnter);\n timerEnter = null;\n }\n start = Date.now();\n timerLeave = setTimeout(() => {\n current.value = null;\n prevCard = null;\n }, TOOLTIP_DELAY_MS);\n }\n\n let instance = null;\n\n return () => {\n if (instance === null) {\n instance = { current, enter, leave };\n }\n return instance;\n };\n})();\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-popover\n :id=\"id\"\n :placement=\"placement\"\n :content-class=\"contentClass\"\n :fallback-placements=\"fallbackPlacements\"\n :padding=\"padding\"\n :transition=\"transition ? 'fade' : null\"\n :offset=\"offset\"\n :modal=\"false\"\n initial-focus-element=\"none\"\n :header-class=\"headerClass\"\n :footer-class=\"footerClass\"\n :append-to=\"appendTo\"\n :hovercard=\"true\"\n :timer=\"timer\"\n data-qa=\"dt-hovercard\"\n @opened=\"(e) => ($emit('opened', e))\"\n >\n <template #anchor=\"{ attrs }\">\n <slot\n name=\"anchor\"\n v-bind=\"attrs\"\n />\n </template>\n <template #content>\n <slot name=\"content\" />\n </template>\n <template #headerContent>\n <slot name=\"headerContent\" />\n </template>\n\n <template #footerContent>\n <slot name=\"footerContent\" />\n </template>\n </dt-popover>\n</template>\n\n<script>\nimport { POPOVER_APPEND_TO_VALUES, POPOVER_PADDING_CLASSES, DtPopover } from '@/components/popover/index.js';\nimport { TOOLTIP_DIRECTIONS } from '@/components/tooltip/index.js';\nimport { getUniqueString } from '@/common/utils';\nimport useTimer from './timer';\n\nexport default {\n name: 'DtHovercard',\n\n components: {\n DtPopover,\n },\n\n props: {\n /**\n * Fade transition when the content display is toggled.\n * @type boolean\n * @values true, false\n */\n transition: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If the popover does not fit in the direction described by \"placement\",\n * it will attempt to change its direction to the \"fallbackPlacements\".\n * @see https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements\"\n */\n fallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * @see https://atomiks.github.io/tippyjs/v6/all-props/#placement\"\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n */\n placement: {\n type: String,\n default: 'top-start',\n validator (placement) {\n return TOOLTIP_DIRECTIONS.includes(placement);\n },\n },\n\n /**\n * Padding size class for the popover content.\n * @values none, small, medium, large\n */\n padding: {\n type: String,\n default: 'large',\n validator: (padding) => {\n return Object.keys(POPOVER_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Displaces the content box from its anchor element\n * by the specified number of pixels.\n * @see https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n */\n offset: {\n type: Array,\n default: () => [0, 16],\n },\n\n /**\n * The id of the tooltip\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class name for the header content wrapper element.\n */\n headerClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the footer content wrapper element.\n */\n footerClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the dialog element.\n */\n dialogClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional class name for the content wrapper element.\n */\n contentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n },\n\n emits: [\n /**\n * Emitted when popover is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n timer: useTimer(),\n };\n },\n};\n</script>\n"],"names":["useTimer","current","timerLeave","timerEnter","start","prevCard","enter","id","time","TOOLTIP_DELAY_MS","leave","instance","_sfc_main","DtPopover","placement","TOOLTIP_DIRECTIONS","padding","POPOVER_PADDING_CLASSES","item","getUniqueString","appendTo","POPOVER_APPEND_TO_VALUES"],"mappings":";;;;;;;;;;;;;;;;;;AAEA,MAAAA,IAAgB,2BAAY;AAC1B,QAAMC,IAAU,EAAE,OAAO;AACzB,MAAIC,GAAYC,GACZC,IAAQ,MACRC,IAAW;AAOf,WAASC,EAAOC,GAAI;AAClB,QAAIF,GAAU;AACZ,YAAMG,IAAO,KAAK,IAAG,IAAKJ,IAAQ;AAClC,MAAIF,KAAY,aAAaA,CAAU,GACnCG,MAAaE,MACfL,IAAa;AAAA,QACX,MAAM;AACJ,UAAID,EAAQ,UAAU,SACpBG,IAAQ,KAAK,QAEfH,EAAQ,QAAQ;AAAA,QACjB;AAAA,QACDO;AAAA,MACV,GACYL,KAAY,aAAaA,CAAU,GACvCA,IAAa;AAAA,QACX,MAAM;AACJ,UAAAF,EAAQ,QAAQM,GAChBF,IAAWE;AAAA,QACZ;AAAA,QACDC;AAAA,MACV;AAAA,IAEA;AACM,MAAAL,IAAa,WAAW,MAAM;AAC5B,QAAAF,EAAQ,QAAQM,GAChBF,IAAWE;AAAA,MACZ,GAAEE,CAAgB;AAAA,EAEtB;AAID,WAASC,IAAS;AAChB,IAAIP,MACF,aAAaA,CAAU,GACvBA,IAAa,OAEfC,IAAQ,KAAK,OACbF,IAAa,WAAW,MAAM;AAC5B,MAAAD,EAAQ,QAAQ,MAChBI,IAAW;AAAA,IACZ,GAAEI,CAAgB;AAAA,EACpB;AAED,MAAIE,IAAW;AAEf,SAAO,OACDA,MAAa,SACfA,IAAW,EAAE,SAAAV,GAAS,OAAAK,GAAO,OAAAI,EAAK,IAE7BC;AAEX,EAAI,GCrBJC,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,WAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,oBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MACA,CAAA,MAAA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAAC,GAAA;AACA,eAAAC,EAAA,SAAAD,CAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAE,MACA,OAAA,KAAAC,CAAA,EAAA,KAAA,CAAAC,MAAAA,MAAAF,CAAA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA,GAAA,EAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,eAAAG,EAAA;AAAA,MAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,cAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,UAAA;AAAA,MACA,MAAA,CAAA,aAAA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAC,MACAC,EAAA,SAAAD,CAAA,KACAA,aAAA;AAAA,IAEA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,OAAApB,EAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,82 @@
1
+ import * as n from "@dialpad/dialtone-icons/vue2";
2
+ import { I as o, a as i } from "../chunks/icon_constants-OpYAAKwF.js";
3
+ import { n as r } from "../chunks/_plugin-vue2_normalizer-u6G_3nkj.js";
4
+ import { DtSkeleton as s } from "./skeleton.js";
5
+ import "@dialpad/dialtone-icons/icons.json";
6
+ const c = {
7
+ name: "DtIcon",
8
+ components: {
9
+ DtSkeleton: s,
10
+ ...n
11
+ },
12
+ inheritAttrs: !1,
13
+ props: {
14
+ /**
15
+ * The size of the icon.
16
+ * @values 100, 200, 300, 400, 500, 600, 700, 800
17
+ */
18
+ size: {
19
+ type: String,
20
+ default: "500",
21
+ validator: (a) => Object.keys(o).includes(a)
22
+ },
23
+ /**
24
+ * The icon name in kebab-case
25
+ */
26
+ name: {
27
+ type: String,
28
+ required: !0,
29
+ validator: (a) => i.includes(a)
30
+ },
31
+ /**
32
+ * The label of the icon as read out by a screenreader. Leave this unset if your icon is purely presentational
33
+ */
34
+ ariaLabel: {
35
+ type: String,
36
+ default: void 0
37
+ },
38
+ /**
39
+ * Shows a skeleton loader while the emoji asset is loading.
40
+ * @values true, false
41
+ */
42
+ showSkeleton: {
43
+ type: Boolean,
44
+ default: !0
45
+ }
46
+ },
47
+ data() {
48
+ return {
49
+ iconLoaded: !1
50
+ };
51
+ },
52
+ computed: {
53
+ iconSize() {
54
+ return o[this.size];
55
+ },
56
+ icon() {
57
+ return `dt-icon-${this.name}`;
58
+ }
59
+ }
60
+ };
61
+ var l = function() {
62
+ var e = this, t = e._self._c;
63
+ return t("span", { staticClass: "d-icon__wrapper" }, [t("dt-skeleton", { directives: [{ name: "show", rawName: "v-show", value: !e.iconLoaded && e.showSkeleton, expression: "!iconLoaded && showSkeleton" }], class: ["d-icon", e.iconSize], attrs: { offset: 0, "shape-option": { shape: "circle", size: "100%" }, "aria-label": e.ariaLabel } }), t(e.icon, e._b({ directives: [{ name: "show", rawName: "v-show", value: e.iconLoaded, expression: "iconLoaded" }], tag: "component", attrs: { size: e.size, "aria-label": e.ariaLabel, "data-qa": e.$attrs["data-qa"] ?? "dt-icon" }, on: { loaded: function(m) {
64
+ e.iconLoaded = !0;
65
+ } } }, "component", e.$attrs, !1))], 1);
66
+ }, d = [], p = /* @__PURE__ */ r(
67
+ c,
68
+ l,
69
+ d,
70
+ !1,
71
+ null,
72
+ null,
73
+ null,
74
+ null
75
+ );
76
+ const h = p.exports;
77
+ export {
78
+ h as DtIcon,
79
+ i as ICON_NAMES,
80
+ o as ICON_SIZE_MODIFIERS
81
+ };
82
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","sources":["../../components/icon/icon.vue"],"sourcesContent":["<template>\n <span class=\"d-icon__wrapper\">\n <dt-skeleton\n v-show=\"!iconLoaded && showSkeleton\"\n :offset=\"0\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n :aria-label=\"ariaLabel\"\n :class=\"['d-icon', iconSize]\"\n />\n <component\n :is=\"icon\"\n v-show=\"iconLoaded\"\n :size=\"size\"\n :aria-label=\"ariaLabel\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-icon'\"\n v-bind=\"$attrs\"\n @loaded=\"iconLoaded = true\"\n />\n </span>\n</template>\n\n<script>\nimport { DtSkeleton } from '../skeleton';\nimport * as icons from '@dialpad/dialtone-icons/vue2';\nimport { ICON_SIZE_MODIFIERS, ICON_NAMES } from './icon_constants';\n\n/**\n * The Icon component provides a set of glyphs and sizes to provide context your application.\n * @see https://dialtone.dialpad.com/components/icon.html\n */\nexport default {\n name: 'DtIcon',\n\n components: {\n DtSkeleton,\n ...icons,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * The size of the icon.\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * The icon name in kebab-case\n */\n name: {\n type: String,\n required: true,\n validator: (name) => ICON_NAMES.includes(name),\n },\n\n /**\n * The label of the icon as read out by a screenreader. Leave this unset if your icon is purely presentational\n */\n ariaLabel: {\n type: String,\n default: undefined,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n iconLoaded: false,\n };\n },\n\n computed: {\n iconSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n\n icon () {\n return `dt-icon-${this.name}`;\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtSkeleton","icons","s","ICON_SIZE_MODIFIERS","name","ICON_NAMES"],"mappings":";;;;;AA8BA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,YAAAC;AAAA,IACA,GAAAC;AAAA,EACA;AAAA,EAEA,cAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAAC,MAAA,OAAA,KAAAC,CAAA,EAAA,SAAAD,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA,CAAAE,MAAAC,EAAA,SAAAD,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,WAAA;AACA,aAAAD,EAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,OAAA;AACA,aAAA,WAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,171 @@
1
+ import { M as r } from "../chunks/modal-VuMFkZFH.js";
2
+ import { EVENT_KEYNAMES as a } from "./constants.js";
3
+ import { Portal as o } from "@linusborg/vue-simple-portal";
4
+ import { n } from "../chunks/_plugin-vue2_normalizer-u6G_3nkj.js";
5
+ import { DtButton as l } from "./button.js";
6
+ import { DtIcon as u } from "./icon.js";
7
+ import "vue";
8
+ import "../chunks/link_constants-vIUB92L4.js";
9
+ import "@dialpad/dialtone-icons/vue2";
10
+ import "../chunks/icon_constants-OpYAAKwF.js";
11
+ import "@dialpad/dialtone-icons/icons.json";
12
+ import "./skeleton.js";
13
+ const c = {
14
+ name: "DtImageViewer",
15
+ components: {
16
+ Portal: o,
17
+ DtButton: l,
18
+ DtIcon: u
19
+ },
20
+ mixins: [r],
21
+ props: {
22
+ /**
23
+ * Controls whether the image modal is shown. Leaving this null will have the image modal
24
+ * trigger on click by default.
25
+ * If you set this value, the default trigger behavior will be disabled and you can control it as you need.
26
+ * Supports .sync modifier
27
+ * @values null, true, false
28
+ */
29
+ open: {
30
+ type: Boolean,
31
+ default: null
32
+ },
33
+ /**
34
+ * URL of the image to be shown
35
+ */
36
+ imageSrc: {
37
+ type: String,
38
+ required: !0
39
+ },
40
+ /**
41
+ * Alt text of image
42
+ */
43
+ imageAlt: {
44
+ type: String,
45
+ required: !0
46
+ },
47
+ /**
48
+ * Image Class
49
+ */
50
+ imageButtonClass: {
51
+ type: String,
52
+ required: !1,
53
+ default: ""
54
+ },
55
+ /**
56
+ * Aria label
57
+ */
58
+ ariaLabel: {
59
+ type: String,
60
+ required: !0
61
+ },
62
+ /**
63
+ * Aria label for close button
64
+ */
65
+ closeAriaLabel: {
66
+ type: String,
67
+ required: !0
68
+ }
69
+ },
70
+ emits: [
71
+ /**
72
+ * Emitted when popover is shown or hidden
73
+ *
74
+ * @event opened
75
+ * @type {Boolean}
76
+ */
77
+ "opened",
78
+ /**
79
+ * Event fired to sync the open prop with the parent component
80
+ * @event update:open
81
+ */
82
+ "update:open"
83
+ ],
84
+ data() {
85
+ return {
86
+ showCloseButton: !0,
87
+ isOpen: !1
88
+ };
89
+ },
90
+ computed: {
91
+ modalListeners() {
92
+ return {
93
+ ...this.$listeners,
94
+ click: (t) => {
95
+ t.target === t.currentTarget && this.close();
96
+ },
97
+ keydown: (t) => {
98
+ switch (t.code) {
99
+ case a.esc:
100
+ case a.escape:
101
+ this.close();
102
+ break;
103
+ case a.tab:
104
+ this.trapFocus(t);
105
+ break;
106
+ }
107
+ }
108
+ };
109
+ }
110
+ },
111
+ watch: {
112
+ isOpen: {
113
+ immediate: !0,
114
+ handler(t) {
115
+ var e;
116
+ t ? this.previousActiveElement = document.activeElement : ((e = this.previousActiveElement) == null || e.focus(), this.previousActiveElement = null);
117
+ }
118
+ },
119
+ open: {
120
+ handler: function(t) {
121
+ t !== null && (this.isOpen = t);
122
+ },
123
+ immediate: !0
124
+ }
125
+ },
126
+ methods: {
127
+ openModal() {
128
+ this.open === null && (this.isOpen = !0, this.showCloseButton = !0, this.$emit("opened", !0), setTimeout(() => {
129
+ this.focusAfterOpen();
130
+ }));
131
+ },
132
+ close() {
133
+ this.isOpen = !1, this.$emit("opened", !1), this.open !== null && this.$emit("update:open", !1);
134
+ },
135
+ focusAfterOpen() {
136
+ var t;
137
+ (t = this.$refs.closeImage) == null || t.$el.focus();
138
+ },
139
+ trapFocus(t) {
140
+ this.isOpen && this.focusTrappedTabPress(t);
141
+ }
142
+ }
143
+ };
144
+ var m = function() {
145
+ var e = this, i = e._self._c;
146
+ return i("div", [i("dt-button", { staticClass: "d-image-viewer__preview-button", attrs: { "data-qa": "dt-image-viewer-preview", "aria-label": e.ariaLabel, importance: "clear" }, on: { click: e.openModal } }, [i("img", { class: e.imageButtonClass, attrs: { src: e.imageSrc, alt: e.imageAlt } })]), e.isOpen ? i("portal", [i("div", e._g({ staticClass: "d-modal", attrs: { "aria-hidden": e.isOpen ? "false" : "true", "data-qa": "dt-modal" }, on: { mouseover: function(s) {
147
+ e.showCloseButton = !0;
148
+ }, mouseleave: function(s) {
149
+ e.showCloseButton = !1;
150
+ }, focusin: function(s) {
151
+ e.showCloseButton = !0;
152
+ }, focusout: function(s) {
153
+ e.showCloseButton = !1;
154
+ } } }, e.modalListeners), [i("div", { staticClass: "d-image-viewer__full", attrs: { "data-qa": "dt-image-viewer-full", role: "dialog", "aria-modal": "true" } }, [i("img", { staticClass: "d-image-viewer__full__image", attrs: { src: e.imageSrc, alt: e.imageAlt } })]), i("transition", { attrs: { name: "fade" } }, [e.showCloseButton ? i("dt-button", { ref: "closeImage", staticClass: "d-modal__close", attrs: { "data-qa": "dt-image-viewer-close-btn", circle: "", size: "lg", importance: "clear", kind: "inverted", "aria-label": e.closeAriaLabel }, on: { click: e.close }, scopedSlots: e._u([{ key: "icon", fn: function() {
155
+ return [i("dt-icon", { staticClass: "d-image-viewer__close-button", attrs: { name: "close", size: "400" } })];
156
+ }, proxy: !0 }], null, !1, 1620344283) }) : e._e()], 1)], 1)]) : e._e()], 1);
157
+ }, p = [], d = /* @__PURE__ */ n(
158
+ c,
159
+ m,
160
+ p,
161
+ !1,
162
+ null,
163
+ null,
164
+ null,
165
+ null
166
+ );
167
+ const $ = d.exports;
168
+ export {
169
+ $ as DtImageViewer
170
+ };
171
+ //# sourceMappingURL=image-viewer.js.map