@dialpad/dialtone 9.35.0 → 9.36.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 (175) hide show
  1. package/dist/css/dialtone.css +4 -151
  2. package/dist/css/dialtone.min.css +1 -1
  3. package/dist/tokens/css/variables-dark.css +1 -1
  4. package/dist/tokens/css/variables-expressive-dark.css +1 -1
  5. package/dist/tokens/css/variables-expressive-light.css +1 -1
  6. package/dist/tokens/css/variables-expressive-sm-dark.css +1 -1
  7. package/dist/tokens/css/variables-expressive-sm-light.css +1 -1
  8. package/dist/tokens/css/variables-light.css +1 -1
  9. package/dist/tokens/css/variables-tmo-dark.css +1 -1
  10. package/dist/tokens/css/variables-tmo-light.css +1 -1
  11. package/dist/tokens/less/variables-dark.less +1 -1
  12. package/dist/tokens/less/variables-expressive-dark.less +1 -1
  13. package/dist/tokens/less/variables-expressive-light.less +1 -1
  14. package/dist/tokens/less/variables-expressive-sm-dark.less +1 -1
  15. package/dist/tokens/less/variables-expressive-sm-light.less +1 -1
  16. package/dist/tokens/less/variables-light.less +1 -1
  17. package/dist/tokens/less/variables-tmo-dark.less +1 -1
  18. package/dist/tokens/less/variables-tmo-light.less +1 -1
  19. package/dist/vue2/chunks/{dropdown-IaLNHmVd.js → dropdown-2D4i6Qkg.js} +2 -2
  20. package/dist/vue2/chunks/{dropdown-IaLNHmVd.js.map → dropdown-2D4i6Qkg.js.map} +1 -1
  21. package/dist/vue2/chunks/{dropdown-DTtcQEFC.js → dropdown-8L_PePwv.js} +2 -2
  22. package/dist/vue2/chunks/{dropdown-DTtcQEFC.js.map → dropdown-8L_PePwv.js.map} +1 -1
  23. package/dist/vue2/chunks/{popover_constants-Qkpb0yh2.js → popover_constants-kQaX7G4a.js} +10 -13
  24. package/dist/vue2/chunks/popover_constants-kQaX7G4a.js.map +1 -0
  25. package/dist/vue2/chunks/{popover_constants-JwBF9h1Z.js → popover_constants-qUYTzsS3.js} +10 -13
  26. package/dist/vue2/chunks/popover_constants-qUYTzsS3.js.map +1 -0
  27. package/dist/vue2/component-documentation.json +1 -1
  28. package/dist/vue2/dialtone-vue.cjs +2 -2
  29. package/dist/vue2/dialtone-vue.js +2 -2
  30. package/dist/vue2/lib/callbar-button-with-popover.cjs +2 -2
  31. package/dist/vue2/lib/callbar-button-with-popover.js +2 -2
  32. package/dist/vue2/lib/callbar-button.cjs +1 -2
  33. package/dist/vue2/lib/callbar-button.cjs.map +1 -1
  34. package/dist/vue2/lib/callbar-button.js +1 -2
  35. package/dist/vue2/lib/callbar-button.js.map +1 -1
  36. package/dist/vue2/lib/combobox-multi-select.cjs +1 -1
  37. package/dist/vue2/lib/combobox-multi-select.js +1 -1
  38. package/dist/vue2/lib/combobox-with-popover.cjs +1 -1
  39. package/dist/vue2/lib/combobox-with-popover.js +1 -1
  40. package/dist/vue2/lib/contact-row.cjs +1 -2
  41. package/dist/vue2/lib/contact-row.cjs.map +1 -1
  42. package/dist/vue2/lib/contact-row.js +1 -2
  43. package/dist/vue2/lib/contact-row.js.map +1 -1
  44. package/dist/vue2/lib/datepicker.cjs +1 -2
  45. package/dist/vue2/lib/datepicker.cjs.map +1 -1
  46. package/dist/vue2/lib/datepicker.js +1 -2
  47. package/dist/vue2/lib/datepicker.js.map +1 -1
  48. package/dist/vue2/lib/dropdown.cjs +2 -2
  49. package/dist/vue2/lib/dropdown.js +2 -2
  50. package/dist/vue2/lib/editor.cjs +1 -1
  51. package/dist/vue2/lib/editor.js +1 -1
  52. package/dist/vue2/lib/emoji-picker.cjs +1 -2
  53. package/dist/vue2/lib/emoji-picker.cjs.map +1 -1
  54. package/dist/vue2/lib/emoji-picker.js +1 -2
  55. package/dist/vue2/lib/emoji-picker.js.map +1 -1
  56. package/dist/vue2/lib/emoji-row.cjs +1 -2
  57. package/dist/vue2/lib/emoji-row.cjs.map +1 -1
  58. package/dist/vue2/lib/emoji-row.js +1 -2
  59. package/dist/vue2/lib/emoji-row.js.map +1 -1
  60. package/dist/vue2/lib/general-row.cjs +32 -8
  61. package/dist/vue2/lib/general-row.cjs.map +1 -1
  62. package/dist/vue2/lib/general-row.js +32 -8
  63. package/dist/vue2/lib/general-row.js.map +1 -1
  64. package/dist/vue2/lib/group-row.cjs +1 -2
  65. package/dist/vue2/lib/group-row.cjs.map +1 -1
  66. package/dist/vue2/lib/group-row.js +1 -2
  67. package/dist/vue2/lib/group-row.js.map +1 -1
  68. package/dist/vue2/lib/hovercard.cjs +1 -1
  69. package/dist/vue2/lib/hovercard.js +1 -1
  70. package/dist/vue2/lib/ivr-node.cjs +2 -2
  71. package/dist/vue2/lib/ivr-node.js +2 -2
  72. package/dist/vue2/lib/message-input.cjs +2 -2
  73. package/dist/vue2/lib/message-input.js +2 -2
  74. package/dist/vue2/lib/popover.cjs +2 -2
  75. package/dist/vue2/lib/popover.cjs.map +1 -1
  76. package/dist/vue2/lib/popover.js +3 -3
  77. package/dist/vue2/lib/popover.js.map +1 -1
  78. package/dist/vue2/lib/tooltip-directive.cjs +1 -2
  79. package/dist/vue2/lib/tooltip-directive.cjs.map +1 -1
  80. package/dist/vue2/lib/tooltip-directive.js +1 -2
  81. package/dist/vue2/lib/tooltip-directive.js.map +1 -1
  82. package/dist/vue2/lib/tooltip.cjs +36 -31
  83. package/dist/vue2/lib/tooltip.cjs.map +1 -1
  84. package/dist/vue2/lib/tooltip.js +37 -32
  85. package/dist/vue2/lib/tooltip.js.map +1 -1
  86. package/dist/vue2/style.css +87 -55
  87. package/dist/vue2/types/components/popover/tippy_utils.d.ts +1 -6
  88. package/dist/vue2/types/components/popover/tippy_utils.d.ts.map +1 -1
  89. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +40 -36
  90. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  91. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +19 -0
  92. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  93. package/dist/vue3/chunks/{dropdown-w8Do29L5.js → dropdown-XFYig-ys.js} +2 -2
  94. package/dist/vue3/chunks/{dropdown-w8Do29L5.js.map → dropdown-XFYig-ys.js.map} +1 -1
  95. package/dist/vue3/chunks/{dropdown-Hn-TeTvZ.js → dropdown-tVfEPEl1.js} +2 -2
  96. package/dist/vue3/chunks/{dropdown-Hn-TeTvZ.js.map → dropdown-tVfEPEl1.js.map} +1 -1
  97. package/dist/vue3/chunks/{popover_constants-Qkpb0yh2.js → popover_constants-kQaX7G4a.js} +10 -13
  98. package/dist/vue3/chunks/popover_constants-kQaX7G4a.js.map +1 -0
  99. package/dist/vue3/chunks/{popover_constants-JwBF9h1Z.js → popover_constants-qUYTzsS3.js} +10 -13
  100. package/dist/vue3/chunks/popover_constants-qUYTzsS3.js.map +1 -0
  101. package/dist/vue3/component-documentation.json +1 -1
  102. package/dist/vue3/dialtone-vue.cjs +2 -2
  103. package/dist/vue3/dialtone-vue.js +2 -2
  104. package/dist/vue3/lib/callbar-button-with-popover.cjs +2 -2
  105. package/dist/vue3/lib/callbar-button-with-popover.js +2 -2
  106. package/dist/vue3/lib/callbar-button.cjs +1 -2
  107. package/dist/vue3/lib/callbar-button.cjs.map +1 -1
  108. package/dist/vue3/lib/callbar-button.js +1 -2
  109. package/dist/vue3/lib/callbar-button.js.map +1 -1
  110. package/dist/vue3/lib/combobox-multi-select.cjs +1 -1
  111. package/dist/vue3/lib/combobox-multi-select.js +1 -1
  112. package/dist/vue3/lib/combobox-with-popover.cjs +1 -1
  113. package/dist/vue3/lib/combobox-with-popover.js +1 -1
  114. package/dist/vue3/lib/contact-row.cjs +1 -2
  115. package/dist/vue3/lib/contact-row.cjs.map +1 -1
  116. package/dist/vue3/lib/contact-row.js +1 -2
  117. package/dist/vue3/lib/contact-row.js.map +1 -1
  118. package/dist/vue3/lib/datepicker.cjs +1 -2
  119. package/dist/vue3/lib/datepicker.cjs.map +1 -1
  120. package/dist/vue3/lib/datepicker.js +1 -2
  121. package/dist/vue3/lib/datepicker.js.map +1 -1
  122. package/dist/vue3/lib/dropdown.cjs +2 -2
  123. package/dist/vue3/lib/dropdown.js +2 -2
  124. package/dist/vue3/lib/editor.cjs +1 -1
  125. package/dist/vue3/lib/editor.js +1 -1
  126. package/dist/vue3/lib/emoji-picker.cjs +1 -2
  127. package/dist/vue3/lib/emoji-picker.cjs.map +1 -1
  128. package/dist/vue3/lib/emoji-picker.js +1 -2
  129. package/dist/vue3/lib/emoji-picker.js.map +1 -1
  130. package/dist/vue3/lib/emoji-row.cjs +1 -2
  131. package/dist/vue3/lib/emoji-row.cjs.map +1 -1
  132. package/dist/vue3/lib/emoji-row.js +1 -2
  133. package/dist/vue3/lib/emoji-row.js.map +1 -1
  134. package/dist/vue3/lib/general-row.cjs +47 -10
  135. package/dist/vue3/lib/general-row.cjs.map +1 -1
  136. package/dist/vue3/lib/general-row.js +47 -10
  137. package/dist/vue3/lib/general-row.js.map +1 -1
  138. package/dist/vue3/lib/group-row.cjs +1 -2
  139. package/dist/vue3/lib/group-row.cjs.map +1 -1
  140. package/dist/vue3/lib/group-row.js +1 -2
  141. package/dist/vue3/lib/group-row.js.map +1 -1
  142. package/dist/vue3/lib/hovercard.cjs +1 -1
  143. package/dist/vue3/lib/hovercard.js +1 -1
  144. package/dist/vue3/lib/ivr-node.cjs +2 -2
  145. package/dist/vue3/lib/ivr-node.js +2 -2
  146. package/dist/vue3/lib/message-input.cjs +2 -2
  147. package/dist/vue3/lib/message-input.js +2 -2
  148. package/dist/vue3/lib/popover.cjs +2 -2
  149. package/dist/vue3/lib/popover.cjs.map +1 -1
  150. package/dist/vue3/lib/popover.js +3 -3
  151. package/dist/vue3/lib/popover.js.map +1 -1
  152. package/dist/vue3/lib/tooltip-directive.cjs +1 -2
  153. package/dist/vue3/lib/tooltip-directive.cjs.map +1 -1
  154. package/dist/vue3/lib/tooltip-directive.js +1 -2
  155. package/dist/vue3/lib/tooltip-directive.js.map +1 -1
  156. package/dist/vue3/lib/tooltip.cjs +40 -52
  157. package/dist/vue3/lib/tooltip.cjs.map +1 -1
  158. package/dist/vue3/lib/tooltip.js +42 -54
  159. package/dist/vue3/lib/tooltip.js.map +1 -1
  160. package/dist/vue3/style.css +87 -55
  161. package/dist/vue3/types/components/popover/tippy_utils.d.ts +1 -6
  162. package/dist/vue3/types/components/popover/tippy_utils.d.ts.map +1 -1
  163. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +22 -47
  164. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  165. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +19 -0
  166. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  167. package/package.json +1 -1
  168. package/dist/vue2/chunks/popover_constants-JwBF9h1Z.js.map +0 -1
  169. package/dist/vue2/chunks/popover_constants-Qkpb0yh2.js.map +0 -1
  170. package/dist/vue2/types/components/tooltip/modifiers.d.ts +0 -8
  171. package/dist/vue2/types/components/tooltip/modifiers.d.ts.map +0 -1
  172. package/dist/vue3/chunks/popover_constants-JwBF9h1Z.js.map +0 -1
  173. package/dist/vue3/chunks/popover_constants-Qkpb0yh2.js.map +0 -1
  174. package/dist/vue3/types/components/tooltip/modifiers.d.ts +0 -8
  175. package/dist/vue3/types/components/tooltip/modifiers.d.ts.map +0 -1
@@ -1,16 +1,12 @@
1
- import { TOOLTIP_DIRECTIONS, TOOLTIP_STICKY_VALUES, POPOVER_APPEND_TO_VALUES, TOOLTIP_KIND_MODIFIERS, getPopperOptions, getAnchor, createTippy, TOOLTIP_DELAY_MS } from "../chunks/popover_constants-Qkpb0yh2.js";
2
- import { TOOLTIP_HIDE_ON_CLICK_VARIANTS } from "../chunks/popover_constants-Qkpb0yh2.js";
1
+ import { TOOLTIP_DIRECTIONS, TOOLTIP_STICKY_VALUES, POPOVER_APPEND_TO_VALUES, TOOLTIP_KIND_MODIFIERS, TOOLTIP_DELAY_MS, getPopperOptions, getAnchor, createTippy } from "../chunks/popover_constants-kQaX7G4a.js";
2
+ import { TOOLTIP_HIDE_ON_CLICK_VARIANTS } from "../chunks/popover_constants-kQaX7G4a.js";
3
3
  import { getUniqueString } from "../common/utils.js";
4
4
  import { normalizeComponent } from "../chunks/_plugin-vue2_normalizer-sOSkiPF3.js";
5
- import { DtLazyShow } from "./lazy-show.js";
6
5
  import "tippy.js";
7
6
  import "../common/constants.js";
8
7
  import "vue";
9
8
  const _sfc_main = {
10
9
  name: "DtTooltip",
11
- components: {
12
- DtLazyShow
13
- },
14
10
  props: {
15
11
  /**
16
12
  * The id of the tooltip
@@ -59,7 +55,7 @@ const _sfc_main = {
59
55
  */
60
56
  offset: {
61
57
  type: Array,
62
- default: () => [0, -4]
58
+ default: () => [0, 12]
63
59
  },
64
60
  /**
65
61
  * The direction the popover displays relative to the anchor. See
@@ -154,12 +150,11 @@ const _sfc_main = {
154
150
  default: null
155
151
  },
156
152
  /**
157
- * Named transition when the content display is toggled.
158
- * @see DtLazyShow
153
+ * Whether the tooltip should have a transition effect.
159
154
  */
160
155
  transition: {
161
- type: String,
162
- default: "fade"
156
+ type: Boolean,
157
+ default: true
163
158
  },
164
159
  /**
165
160
  * Whether the tooltip will have a delay when being focused or moused over.
@@ -204,9 +199,7 @@ const _sfc_main = {
204
199
  // this is where the placement currently is, this can be different than
205
200
  // the placement prop when there is not enough available room for the tip
206
201
  // to display and it uses a fallback placement.
207
- currentPlacement: this.placement,
208
- // flag check touch based device
209
- isTouchDevice: false
202
+ currentPlacement: this.placement
210
203
  };
211
204
  },
212
205
  computed: {
@@ -233,10 +226,11 @@ const _sfc_main = {
233
226
  tippyProps() {
234
227
  return {
235
228
  offset: this.offset,
236
- interactive: false,
237
- trigger: "manual",
229
+ delay: this.delay ? TOOLTIP_DELAY_MS : false,
238
230
  placement: this.placement,
239
231
  sticky: this.sticky,
232
+ theme: this.inverted ? "inverted" : void 0,
233
+ animation: this.transition ? "fade" : false,
240
234
  popperOptions: getPopperOptions({
241
235
  fallbackPlacements: this.fallbackPlacements,
242
236
  hasHideModifierEnabled: true,
@@ -307,8 +301,6 @@ const _sfc_main = {
307
301
  return this.anchor.matches(":focus-visible");
308
302
  },
309
303
  onEnterAnchor(e) {
310
- if (this.isTouchDevice && !e.relatedTarget)
311
- return;
312
304
  if (this.delay && this.inTimer === null) {
313
305
  this.inTimer = setTimeout(() => {
314
306
  this.triggerShow(e);
@@ -316,7 +308,6 @@ const _sfc_main = {
316
308
  } else {
317
309
  this.triggerShow(e);
318
310
  }
319
- this.isTouchDevice = false;
320
311
  },
321
312
  triggerShow(e) {
322
313
  if (e.type === "focusin") {
@@ -361,21 +352,39 @@ const _sfc_main = {
361
352
  if (this.tip && this.tip.setProps) {
362
353
  this.tip.setProps({
363
354
  ...this.tippyProps,
364
- zIndex: this.calculateAnchorZindex(),
365
- appendTo: this.appendTo === "body" ? (_b = (_a = this.anchor) == null ? void 0 : _a.getRootNode()) == null ? void 0 : _b.querySelector("body") : this.appendTo
355
+ // these need to be set here rather than in tippyProps because they are non-reactive
356
+ appendTo: this.appendTo === "body" ? (_b = (_a = this.anchor) == null ? void 0 : _a.getRootNode()) == null ? void 0 : _b.querySelector("body") : this.appendTo,
357
+ zIndex: this.calculateAnchorZindex()
366
358
  });
367
359
  }
368
360
  },
369
361
  onMount() {
370
362
  this.setProps();
371
363
  },
364
+ onShow(tooltipInstance) {
365
+ if (tooltipInstance.props.content.textContent.length === 0) {
366
+ return false;
367
+ }
368
+ },
369
+ // set initial options here. If any of the options need to dynamically change, they should be put in
370
+ // tippyProps instead.
372
371
  initOptions() {
372
+ const template = this.$refs.content;
373
373
  return {
374
- contentElement: this.$refs.content.$el,
375
- allowHTML: true,
376
- zIndex: this.calculateAnchorZindex(),
374
+ content: template,
375
+ arrow: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="7"><path d="M 14.5,7 8,0 1.5,7 Z"/></svg>',
376
+ // transition duration - same as our custom fade delay in dialtone-globals.less
377
+ duration: 180,
378
+ interactive: false,
379
+ trigger: "manual",
380
+ hideOnClick: false,
381
+ // disable tooltip from displaying on touch devices
382
+ touch: false,
377
383
  onMount: this.onMount,
378
- ...this.tippyProps
384
+ onShow: this.onShow,
385
+ popperOptions: getPopperOptions({
386
+ hasHideModifierEnabled: true
387
+ })
379
388
  };
380
389
  },
381
390
  addExternalAnchorEventListeners() {
@@ -393,9 +402,6 @@ const _sfc_main = {
393
402
  ["focusout", "mouseleave", "keydown"].forEach((listener) => {
394
403
  this.anchor.removeEventListener(listener, (event) => this.onLeaveAnchor(event));
395
404
  });
396
- },
397
- onTouchStart() {
398
- this.isTouchDevice = true;
399
405
  }
400
406
  }
401
407
  };
@@ -405,16 +411,15 @@ var _sfc_render = function render() {
405
411
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "esc", 27, $event.key, ["Esc", "Escape"]))
406
412
  return null;
407
413
  return _vm.onLeaveAnchor.apply(null, arguments);
408
- }, "touchstart": _vm.onTouchStart } }, [_vm._t("anchor")], 2) : _vm._e(), _c("dt-lazy-show", _vm._g({ ref: "content", class: [
414
+ } } }, [_vm._t("anchor")], 2) : _vm._e(), _c("div", _vm._g({ ref: "content", class: [
409
415
  "d-tooltip",
410
- `d-tooltip__arrow-tippy--${_vm.currentPlacement}`,
411
416
  {
412
417
  [_vm.TOOLTIP_KIND_MODIFIERS.inverted]: _vm.inverted
413
418
  },
414
419
  _vm.contentClass
415
- ], attrs: { "id": _vm.id, "show": _vm.isVisible, "role": "tooltip", "aria-hidden": "false", "data-qa": "dt-tooltip", "appear": "", "transition": _vm.transition } }, _vm.tooltipListeners), [_vm._t("default", function() {
420
+ ], attrs: { "id": _vm.id, "data-qa": "dt-tooltip" } }, _vm.tooltipListeners), [_vm._t("default", function() {
416
421
  return [_vm._v(" " + _vm._s(_vm.message) + " ")];
417
- })], 2)], 1);
422
+ })], 2)]);
418
423
  };
419
424
  var _sfc_staticRenderFns = [];
420
425
  var __component__ = /* @__PURE__ */ normalizeComponent(
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","sources":["../../components/tooltip/tooltip.vue"],"sourcesContent":["<template>\n <div data-qa=\"dt-tooltip-container\">\n <!-- disabling as the below events are for capturing events from interactive\n elements within the span rather than on the span itself -->\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <span\n v-if=\"!externalAnchor\"\n ref=\"anchor\"\n data-qa=\"dt-tooltip-anchor\"\n @focusin=\"onEnterAnchor\"\n @focusout=\"onLeaveAnchor\"\n @mouseenter=\"onEnterAnchor\"\n @mouseleave=\"onLeaveAnchor\"\n @keydown.esc=\"onLeaveAnchor\"\n @touchstart=\"onTouchStart\"\n >\n <!-- @slot Slot for the anchor element -->\n <slot\n name=\"anchor\"\n />\n </span>\n <dt-lazy-show\n :id=\"id\"\n ref=\"content\"\n :show=\"isVisible\"\n role=\"tooltip\"\n aria-hidden=\"false\"\n data-qa=\"dt-tooltip\"\n appear\n :transition=\"transition\"\n :class=\"[\n 'd-tooltip',\n `d-tooltip__arrow-tippy--${currentPlacement}`,\n {\n [ TOOLTIP_KIND_MODIFIERS.inverted ]: inverted,\n },\n contentClass,\n ]\"\n v-on=\"tooltipListeners\"\n >\n <!-- In case when transitionend event doesn't work correct (for ex. tooltip component with custom trigger) -->\n <!-- after-leave event can be used instead of transitionend -->\n <!-- @slot Slot for the content, defaults to message prop -->\n <slot>\n {{ message }}\n </slot>\n </dt-lazy-show>\n </div>\n</template>\n\n<script>\nimport {\n TOOLTIP_KIND_MODIFIERS,\n TOOLTIP_DIRECTIONS,\n TOOLTIP_STICKY_VALUES,\n TOOLTIP_DELAY_MS,\n} from './tooltip_constants.js';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '../popover/popover_constants';\nimport { getUniqueString } from '@/common/utils';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport {\n createTippy,\n getAnchor,\n getPopperOptions,\n} from '@/components/popover/tippy_utils';\n\n/**\n * A tooltip is a floating label that briefly explains an action, function, or an element.\n * Its content is exclusively text and shouldn't be vital information for users.\n * If richer media is desired, consider using a popover instead.\n * @see https://dialtone.dialpad.com/components/tooltip.html\n */\nexport default {\n name: 'DtTooltip',\n components: {\n DtLazyShow,\n },\n\n props: {\n /**\n * The id of the tooltip\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\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 * if defined, otherwise it will automatically position to a new location\n * as it sees best fit. See\n * <a\n * class=\"d-link\"\n * href=\"https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements\"\n * target=\"_blank\"\n * >\n * Popper.js docs\n * </a>\n * */\n fallbackPlacements: {\n type: Array,\n default: () => ['auto'],\n },\n\n /**\n * If true, applies inverted styles to the tooltip\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the tooltip from its reference element\n * by the specified number of pixels. See\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, -4],\n },\n\n /**\n * The direction the popover displays relative to the anchor. See\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#placement\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\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',\n validator (placement) {\n return TOOLTIP_DIRECTIONS.includes(placement);\n },\n },\n\n /**\n * If the tooltip sticks to the anchor. This is usually not needed, but can be needed\n * if the reference element's position is animating, or to automatically update the popover\n * position in those cases the DOM layout changes the reference element's position.\n * `true` enables it, `reference` only checks the \"reference\" rect for changes and `popper` only\n * checks the \"popper\" rect for changes. See\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#sticky\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n * @values true, false, reference, popper\n */\n sticky: {\n type: [Boolean, String],\n default: false,\n validator: (sticky) => {\n return TOOLTIP_STICKY_VALUES.includes(sticky);\n },\n },\n\n /**\n * Sets the element to which the tooltip is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * This prop is not reactive, must be set on initial render.\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 * Additional css classes for the tooltip content element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * A provided message for the tooltip content\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Controls whether hover/focus causes the tooltip to appear.\n * Cannot be combined with the show prop. show value will be ignored.\n * by default this is true, if you override with false, the tooltip will never show up.\n */\n enabled: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Controls whether the tooltip is shown. Leaving this null will have the tooltip trigger on mouseover by default.\n * If you set this value, the default mouseover behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n show: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n\n /**\n * Whether the tooltip will have a delay when being focused or moused over.\n * @values true, false\n */\n delay: {\n type: Boolean,\n default: true,\n },\n\n /**\n * External anchor id to use in those cases the anchor can't be provided via the slot.\n * For instance, using the combobox's input as the anchor for the popover.\n */\n externalAnchor: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Emitted when tooltip is shown or hidden\n *\n * @event shown\n * @type {Boolean}\n */\n 'shown',\n\n /**\n * Sync show value\n *\n * @event update:show\n */\n 'update:show',\n ],\n\n data () {\n return {\n TOOLTIP_KIND_MODIFIERS,\n tip: null,\n\n inTimer: null,\n\n // Internal state for whether the tooltip is shown. Changing the prop\n // will update this.\n isShown: false,\n\n // this is where the placement currently is, this can be different than\n // the placement prop when there is not enough available room for the tip\n // to display and it uses a fallback placement.\n currentPlacement: this.placement,\n\n // flag check touch based device\n isTouchDevice: false,\n };\n },\n\n computed: {\n // whether the tooltip is visible or not.\n isVisible () {\n const hasMessage = !!this.message?.trim();\n const hasDefaultSlot = !!this.$slots?.default;\n const isDeviceCompatible = !this.isTouchDevice;\n\n const shouldBeVisible = this.isShown && this.enabled && (hasMessage || hasDefaultSlot);\n\n return shouldBeVisible && isDeviceCompatible;\n },\n\n tooltipListeners () {\n return {\n ...this.$listeners,\n\n 'after-leave': () => {\n this.onLeaveTransitionComplete();\n },\n\n 'after-enter': () => {\n this.onEnterTransitionComplete();\n },\n };\n },\n\n tippyProps () {\n return {\n offset: this.offset,\n interactive: false,\n trigger: 'manual',\n placement: this.placement,\n sticky: this.sticky,\n popperOptions: getPopperOptions({\n fallbackPlacements: this.fallbackPlacements,\n hasHideModifierEnabled: true,\n onChangePlacement: this.onChangePlacement,\n }),\n };\n },\n\n anchor () {\n return this.externalAnchor ? document.body.querySelector(this.externalAnchor) : getAnchor(this.$refs.anchor);\n },\n },\n\n watch: {\n\n tippyProps: {\n handler: 'setProps',\n deep: true,\n },\n\n show: {\n handler: function (show) {\n if (show !== null) {\n this.isShown = show;\n }\n },\n\n immediate: true,\n },\n\n isShown (isShown) {\n if (isShown) {\n this.setProps();\n this.tip.show();\n } else {\n this.tip.hide();\n }\n },\n\n sticky (sticky) {\n this.tip.setProps({\n sticky,\n });\n },\n },\n\n mounted () {\n if (!this.enabled && this.show != null) {\n console.warn('Tooltip: You cannot use both the enabled and show props at the same time.');\n console.warn('The show prop will be ignored.');\n }\n this.externalAnchor && this.addExternalAnchorEventListeners();\n this.tip = createTippy(this.anchor, this.initOptions());\n\n // immediate watcher fires before mounted, so have this here in case\n // show prop was initially set to true.\n if (this.isShown) {\n this.tip.show();\n }\n },\n\n beforeDestroy () {\n this.externalAnchor && this.removeExternalAnchorEventListeners();\n\n if (this.tip) {\n this.tip?.destroy();\n }\n },\n\n methods: {\n calculateAnchorZindex () {\n // if a modal is currently active render at modal-element z-index, otherwise at tooltip z-index\n if (this.$el.getRootNode()\n .querySelector('.d-modal[aria-hidden=\"false\"], .d-modal--transparent[aria-hidden=\"false\"]') ||\n // Special case because we don't have any dialtone drawer component yet. Render at 651 when\n // anchor of popover is within a drawer.\n this.$el.closest('.d-zi-drawer')) {\n return 651;\n } else {\n return 400;\n }\n },\n\n hasVisibleFocus () {\n return this.anchor.matches(':focus-visible');\n },\n\n onEnterAnchor (e) {\n // Note: This is to stop the call of mouseenter event when touchstart event is triggered,\n // as when triggered by click or touch, the relatedTarget property of MouseEvent is null\n if (this.isTouchDevice && !e.relatedTarget) return;\n\n if (this.delay && this.inTimer === null) {\n this.inTimer = setTimeout(() => {\n this.triggerShow(e);\n }, TOOLTIP_DELAY_MS);\n } else {\n this.triggerShow(e);\n }\n\n // since this method will be trigger by mouse event, updating the flag is non-touch device\n this.isTouchDevice = false;\n },\n\n triggerShow (e) {\n if (e.type === 'focusin') {\n // only show tooltips on visible focus when triggered via focus.\n // when the user is using the mouse they only want tooltips to display\n // on mouseover.\n //\n // Example: anchor of a popover is a button with tooltip.\n // closing it with the mouse would trigger the tooltip to display as\n // the anchor is focused on close. Not what we want.\n if (this.show === null && this.hasVisibleFocus()) {\n this.isShown = true;\n }\n } else {\n if (this.show === null) this.isShown = true;\n }\n },\n\n onLeaveAnchor (e) {\n if (e.type === 'keydown' && e.code !== 'Escape') return;\n\n clearTimeout(this.inTimer);\n this.inTimer = null;\n this.triggerHide();\n },\n\n triggerHide () {\n if (this.show === null) this.isShown = false;\n },\n\n onChangePlacement (placement) {\n this.currentPlacement = placement;\n },\n\n onLeaveTransitionComplete () {\n this.tip?.unmount();\n this.$emit('shown', false);\n if (this.show !== null) {\n this.$emit('update:show', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('shown', true);\n if (this.show !== null) {\n this.$emit('update:show', true);\n }\n },\n\n setProps () {\n if (this.tip && this.tip.setProps) {\n this.tip.setProps({\n ...this.tippyProps,\n zIndex: this.calculateAnchorZindex(),\n appendTo: this.appendTo === 'body' ? this.anchor?.getRootNode()?.querySelector('body') : this.appendTo,\n });\n }\n },\n\n onMount () {\n this.setProps();\n },\n\n initOptions () {\n return {\n contentElement: this.$refs.content.$el,\n allowHTML: true,\n zIndex: this.calculateAnchorZindex(),\n onMount: this.onMount,\n ...this.tippyProps,\n };\n },\n\n addExternalAnchorEventListeners () {\n ['focusin', 'mouseenter'].forEach(listener => {\n this.anchor.addEventListener(listener, (event) => this.onEnterAnchor(event));\n });\n ['focusout', 'mouseleave', 'keydown'].forEach(listener => {\n this.anchor.addEventListener(listener, (event) => this.onLeaveAnchor(event));\n });\n },\n\n removeExternalAnchorEventListeners () {\n ['focusin', 'mouseenter'].forEach(listener => {\n this.anchor.removeEventListener(listener, (event) => this.onEnterAnchor(event));\n });\n ['focusout', 'mouseleave', 'keydown'].forEach(listener => {\n this.anchor.removeEventListener(listener, (event) => this.onLeaveAnchor(event));\n });\n },\n\n onTouchStart () {\n this.isTouchDevice = true;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.tippy-box[data-popper-reference-hidden] {\n .d-tooltip {\n visibility: hidden;\n pointer-events: none;\n }\n}\n</style>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tooltip.js","sources":["../../components/tooltip/tooltip.vue"],"sourcesContent":["<template>\n <div data-qa=\"dt-tooltip-container\">\n <!-- disabling as the below events are for capturing events from interactive\n elements within the span rather than on the span itself -->\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <span\n v-if=\"!externalAnchor\"\n ref=\"anchor\"\n data-qa=\"dt-tooltip-anchor\"\n @focusin=\"onEnterAnchor\"\n @focusout=\"onLeaveAnchor\"\n @mouseenter=\"onEnterAnchor\"\n @mouseleave=\"onLeaveAnchor\"\n @keydown.esc=\"onLeaveAnchor\"\n >\n <!-- @slot Slot for the anchor element -->\n <slot\n name=\"anchor\"\n />\n </span>\n <div\n :id=\"id\"\n ref=\"content\"\n data-qa=\"dt-tooltip\"\n :class=\"[\n 'd-tooltip',\n {\n [ TOOLTIP_KIND_MODIFIERS.inverted ]: inverted,\n },\n contentClass,\n ]\"\n v-on=\"tooltipListeners\"\n >\n <!-- In case when transitionend event doesn't work correct (for ex. tooltip component with custom trigger) -->\n <!-- after-leave event can be used instead of transitionend -->\n <!-- @slot Slot for the content, defaults to message prop -->\n <slot>\n {{ message }}\n </slot>\n </div>\n </div>\n</template>\n\n<script>\nimport {\n TOOLTIP_KIND_MODIFIERS,\n TOOLTIP_DIRECTIONS,\n TOOLTIP_STICKY_VALUES,\n TOOLTIP_DELAY_MS,\n} from './tooltip_constants.js';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '../popover/popover_constants';\nimport { getUniqueString } from '@/common/utils';\nimport {\n createTippy,\n getAnchor,\n getPopperOptions,\n} from '@/components/popover/tippy_utils';\n\n/**\n * A tooltip is a floating label that briefly explains an action, function, or an element.\n * Its content is exclusively text and shouldn't be vital information for users.\n * If richer media is desired, consider using a popover instead.\n * @see https://dialtone.dialpad.com/components/tooltip.html\n */\nexport default {\n name: 'DtTooltip',\n\n props: {\n /**\n * The id of the tooltip\n */\n id: {\n type: String,\n default () { return getUniqueString(); },\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 * if defined, otherwise it will automatically position to a new location\n * as it sees best fit. See\n * <a\n * class=\"d-link\"\n * href=\"https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements\"\n * target=\"_blank\"\n * >\n * Popper.js docs\n * </a>\n * */\n fallbackPlacements: {\n type: Array,\n default: () => ['auto'],\n },\n\n /**\n * If true, applies inverted styles to the tooltip\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the tooltip from its reference element\n * by the specified number of pixels. See\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#offset\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n */\n offset: {\n type: Array,\n default: () => [0, 12],\n },\n\n /**\n * The direction the popover displays relative to the anchor. See\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#placement\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\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',\n validator (placement) {\n return TOOLTIP_DIRECTIONS.includes(placement);\n },\n },\n\n /**\n * If the tooltip sticks to the anchor. This is usually not needed, but can be needed\n * if the reference element's position is animating, or to automatically update the popover\n * position in those cases the DOM layout changes the reference element's position.\n * `true` enables it, `reference` only checks the \"reference\" rect for changes and `popper` only\n * checks the \"popper\" rect for changes. See\n * <a\n * class=\"d-link\"\n * href=\"https://atomiks.github.io/tippyjs/v6/all-props/#sticky\"\n * target=\"_blank\"\n * >\n * Tippy.js docs\n * </a>\n * @values true, false, reference, popper\n */\n sticky: {\n type: [Boolean, String],\n default: false,\n validator: (sticky) => {\n return TOOLTIP_STICKY_VALUES.includes(sticky);\n },\n },\n\n /**\n * Sets the element to which the tooltip is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * This prop is not reactive, must be set on initial render.\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 * Additional css classes for the tooltip content element.\n * Can accept all of String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * A provided message for the tooltip content\n */\n message: {\n type: String,\n default: '',\n },\n\n /**\n * Controls whether hover/focus causes the tooltip to appear.\n * Cannot be combined with the show prop. show value will be ignored.\n * by default this is true, if you override with false, the tooltip will never show up.\n */\n enabled: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Controls whether the tooltip is shown. Leaving this null will have the tooltip trigger on mouseover by default.\n * If you set this value, the default mouseover behavior will be disabled and you can control it as you need.\n * Supports .sync modifier\n * @values null, true, false\n */\n show: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Whether the tooltip should have a transition effect.\n */\n transition: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether the tooltip will have a delay when being focused or moused over.\n * @values true, false\n */\n delay: {\n type: Boolean,\n default: true,\n },\n\n /**\n * External anchor id to use in those cases the anchor can't be provided via the slot.\n * For instance, using the combobox's input as the anchor for the popover.\n */\n externalAnchor: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Emitted when tooltip is shown or hidden\n *\n * @event shown\n * @type {Boolean}\n */\n 'shown',\n\n /**\n * Sync show value\n *\n * @event update:show\n */\n 'update:show',\n ],\n\n data () {\n return {\n TOOLTIP_KIND_MODIFIERS,\n tip: null,\n\n inTimer: null,\n\n // Internal state for whether the tooltip is shown. Changing the prop\n // will update this.\n isShown: false,\n\n // this is where the placement currently is, this can be different than\n // the placement prop when there is not enough available room for the tip\n // to display and it uses a fallback placement.\n currentPlacement: this.placement,\n };\n },\n\n computed: {\n // whether the tooltip is visible or not.\n isVisible () {\n const hasMessage = !!this.message?.trim();\n const hasDefaultSlot = !!this.$slots?.default;\n const isDeviceCompatible = !this.isTouchDevice;\n\n const shouldBeVisible = this.isShown && this.enabled && (hasMessage || hasDefaultSlot);\n\n return shouldBeVisible && isDeviceCompatible;\n },\n\n tooltipListeners () {\n return {\n ...this.$listeners,\n\n 'after-leave': () => {\n this.onLeaveTransitionComplete();\n },\n\n 'after-enter': () => {\n this.onEnterTransitionComplete();\n },\n };\n },\n\n tippyProps () {\n return {\n offset: this.offset,\n delay: this.delay ? TOOLTIP_DELAY_MS : false,\n placement: this.placement,\n sticky: this.sticky,\n theme: this.inverted ? 'inverted' : undefined,\n animation: this.transition ? 'fade' : false,\n\n popperOptions: getPopperOptions({\n fallbackPlacements: this.fallbackPlacements,\n hasHideModifierEnabled: true,\n onChangePlacement: this.onChangePlacement,\n }),\n };\n },\n\n anchor () {\n return this.externalAnchor ? document.body.querySelector(this.externalAnchor) : getAnchor(this.$refs.anchor);\n },\n },\n\n watch: {\n\n tippyProps: {\n handler: 'setProps',\n deep: true,\n },\n\n show: {\n handler: function (show) {\n if (show !== null) {\n this.isShown = show;\n }\n },\n\n immediate: true,\n },\n\n isShown (isShown) {\n if (isShown) {\n this.setProps();\n this.tip.show();\n } else {\n this.tip.hide();\n }\n },\n\n sticky (sticky) {\n this.tip.setProps({\n sticky,\n });\n },\n },\n\n mounted () {\n if (!this.enabled && this.show != null) {\n console.warn('Tooltip: You cannot use both the enabled and show props at the same time.');\n console.warn('The show prop will be ignored.');\n }\n this.externalAnchor && this.addExternalAnchorEventListeners();\n this.tip = createTippy(this.anchor, this.initOptions());\n\n // immediate watcher fires before mounted, so have this here in case\n // show prop was initially set to true.\n if (this.isShown) {\n this.tip.show();\n }\n },\n\n beforeDestroy () {\n this.externalAnchor && this.removeExternalAnchorEventListeners();\n\n if (this.tip) {\n this.tip?.destroy();\n }\n },\n\n methods: {\n calculateAnchorZindex () {\n // if a modal is currently active render at modal-element z-index, otherwise at tooltip z-index\n if (this.$el.getRootNode()\n .querySelector('.d-modal[aria-hidden=\"false\"], .d-modal--transparent[aria-hidden=\"false\"]') ||\n // Special case because we don't have any dialtone drawer component yet. Render at 651 when\n // anchor of popover is within a drawer.\n this.$el.closest('.d-zi-drawer')) {\n return 651;\n } else {\n return 400;\n }\n },\n\n hasVisibleFocus () {\n return this.anchor.matches(':focus-visible');\n },\n\n onEnterAnchor (e) {\n if (this.delay && this.inTimer === null) {\n this.inTimer = setTimeout(() => {\n this.triggerShow(e);\n }, TOOLTIP_DELAY_MS);\n } else {\n this.triggerShow(e);\n }\n },\n\n triggerShow (e) {\n if (e.type === 'focusin') {\n // only show tooltips on visible focus when triggered via focus.\n // when the user is using the mouse they only want tooltips to display\n // on mouseover.\n //\n // Example: anchor of a popover is a button with tooltip.\n // closing it with the mouse would trigger the tooltip to display as\n // the anchor is focused on close. Not what we want.\n if (this.show === null && this.hasVisibleFocus()) {\n this.isShown = true;\n }\n } else {\n if (this.show === null) this.isShown = true;\n }\n },\n\n onLeaveAnchor (e) {\n if (e.type === 'keydown' && e.code !== 'Escape') return;\n\n clearTimeout(this.inTimer);\n this.inTimer = null;\n this.triggerHide();\n },\n\n triggerHide () {\n if (this.show === null) this.isShown = false;\n },\n\n onChangePlacement (placement) {\n this.currentPlacement = placement;\n },\n\n onLeaveTransitionComplete () {\n this.tip?.unmount();\n this.$emit('shown', false);\n if (this.show !== null) {\n this.$emit('update:show', false);\n }\n },\n\n onEnterTransitionComplete () {\n this.$emit('shown', true);\n if (this.show !== null) {\n this.$emit('update:show', true);\n }\n },\n\n setProps () {\n if (this.tip && this.tip.setProps) {\n this.tip.setProps({\n ...this.tippyProps,\n // these need to be set here rather than in tippyProps because they are non-reactive\n appendTo: this.appendTo === 'body' ? this.anchor?.getRootNode()?.querySelector('body') : this.appendTo,\n zIndex: this.calculateAnchorZindex(),\n });\n }\n },\n\n onMount () {\n this.setProps();\n },\n\n onShow (tooltipInstance) {\n // don't show tooltip when no content\n if (tooltipInstance.props.content.textContent.length === 0) {\n return false;\n }\n },\n\n // set initial options here. If any of the options need to dynamically change, they should be put in\n // tippyProps instead.\n initOptions () {\n const template = this.$refs.content;\n return {\n content: template,\n arrow: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"7\"><path d=\"M 14.5,7 8,0 1.5,7 Z\"/></svg>',\n // transition duration - same as our custom fade delay in dialtone-globals.less\n duration: 180,\n interactive: false,\n trigger: 'manual',\n hideOnClick: false,\n // disable tooltip from displaying on touch devices\n touch: false,\n onMount: this.onMount,\n onShow: this.onShow,\n popperOptions: getPopperOptions({\n hasHideModifierEnabled: true,\n }),\n };\n },\n\n addExternalAnchorEventListeners () {\n ['focusin', 'mouseenter'].forEach(listener => {\n this.anchor.addEventListener(listener, (event) => this.onEnterAnchor(event));\n });\n ['focusout', 'mouseleave', 'keydown'].forEach(listener => {\n this.anchor.addEventListener(listener, (event) => this.onLeaveAnchor(event));\n });\n },\n\n removeExternalAnchorEventListeners () {\n ['focusin', 'mouseenter'].forEach(listener => {\n this.anchor.removeEventListener(listener, (event) => this.onEnterAnchor(event));\n });\n ['focusout', 'mouseleave', 'keydown'].forEach(listener => {\n this.anchor.removeEventListener(listener, (event) => this.onLeaveAnchor(event));\n });\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n@import 'tippy.js/dist/svg-arrow.css';\n\n.tippy-box[data-reference-hidden] {\n visibility: hidden;\n pointer-events: none;\n}\n\n.tippy-box > .tippy-svg-arrow {\n fill: var(--dt-color-surface-contrast);\n}\n\n.tippy-box[data-theme~='inverted'] > .tippy-svg-arrow {\n fill: var(--dt-color-surface-moderate);\n}\n\n.tippy-box[data-animation='fade'][data-state='hidden'] {\n opacity: 0;\n}\n</style>\n"],"names":[],"mappings":"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"}
@@ -10,9 +10,15 @@
10
10
  .d-dropdown-list > .dt-list-item {
11
11
  margin-top: var(--dt-space-200);
12
12
  }
13
- .tippy-box[data-popper-reference-hidden] .d-tooltip {
13
+ .tippy-box[data-placement^=top]>.tippy-svg-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-svg-arrow:after,.tippy-box[data-placement^=top]>.tippy-svg-arrow>svg{top:16px;transform:rotate(180deg)}.tippy-box[data-placement^=bottom]>.tippy-svg-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:16px}.tippy-box[data-placement^=left]>.tippy-svg-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-svg-arrow:after,.tippy-box[data-placement^=left]>.tippy-svg-arrow>svg{transform:rotate(90deg);top:calc(50% - 3px);left:11px}.tippy-box[data-placement^=right]>.tippy-svg-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-svg-arrow:after,.tippy-box[data-placement^=right]>.tippy-svg-arrow>svg{transform:rotate(-90deg);top:calc(50% - 3px);right:11px}.tippy-svg-arrow{width:16px;height:16px;fill:#333;text-align:initial}.tippy-svg-arrow,.tippy-svg-arrow>svg{position:absolute}.tippy-box[data-reference-hidden] {
14
14
  visibility: hidden;
15
15
  pointer-events: none;
16
+ }.tippy-box > .tippy-svg-arrow {
17
+ fill: var(--dt-color-surface-contrast);
18
+ }.tippy-box[data-theme~='inverted'] > .tippy-svg-arrow {
19
+ fill: var(--dt-color-surface-moderate);
20
+ }.tippy-box[data-animation='fade'][data-state='hidden'] {
21
+ opacity: 0;
16
22
  }
17
23
  .skeleton-placeholder {
18
24
  display: flex;
@@ -263,7 +269,7 @@
263
269
  background-color: var(--dt-color-surface-contrast);
264
270
  color: var(--dt-color-foreground-secondary-inverted);
265
271
  }
266
- .dt-leftbar-row[data-v-ca5d7362] {
272
+ .dt-leftbar-row[data-v-85a76326] {
267
273
  --leftbar-row-color-foreground: var(--dt-theme-sidebar-color-foreground);
268
274
  --leftbar-row-color-background: var(--dt-theme-sidebar-row-color-background);
269
275
  --leftbar-row-radius: var(--dt-size-radius-pill);
@@ -294,52 +300,65 @@
294
300
  transition-timing-function: var(--ttf-out-quint);
295
301
  cursor: pointer;
296
302
  }
297
- .dt-leftbar-row[data-v-ca5d7362]:not(.dt-leftbar-row--no-action):hover,
298
- .dt-leftbar-row[data-v-ca5d7362]:not(.dt-leftbar-row--no-action):focus-within {
303
+ .dt-leftbar-row[data-v-85a76326]:not(.dt-leftbar-row--no-action):hover,
304
+ .dt-leftbar-row[data-v-85a76326]:not(.dt-leftbar-row--no-action):focus-within {
299
305
  --leftbar-row-unread-badge-display: none;
300
306
  }
301
- .dt-leftbar-row[data-v-ca5d7362]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action,
302
- .dt-leftbar-row[data-v-ca5d7362]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action {
307
+ .dt-leftbar-row[data-v-85a76326]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action,
308
+ .dt-leftbar-row[data-v-85a76326]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action {
303
309
  display: inline-flex;
304
310
  }
305
- .dt-leftbar-row[data-v-ca5d7362]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action-button,
306
- .dt-leftbar-row[data-v-ca5d7362]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action-button {
311
+ .dt-leftbar-row[data-v-85a76326]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action-button,
312
+ .dt-leftbar-row[data-v-85a76326]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action-button {
307
313
  opacity: 1;
308
314
  }
309
- .dt-leftbar-row[data-v-ca5d7362]:hover,
310
- .dt-leftbar-row[data-v-ca5d7362]:focus-within {
315
+ .dt-leftbar-row[data-v-85a76326]:hover,
316
+ .dt-leftbar-row[data-v-85a76326]:focus-within {
311
317
  --leftbar-row-color-background: var(--dt-theme-sidebar-row-color-background-hover);
312
318
  }
313
- .dt-leftbar-row[data-v-ca5d7362]:hover .d-presence,
314
- .dt-leftbar-row[data-v-ca5d7362]:focus-within .d-presence {
319
+ .dt-leftbar-row[data-v-85a76326]:hover .d-presence,
320
+ .dt-leftbar-row[data-v-85a76326]:focus-within .d-presence {
315
321
  --presence-color-border-base: var(--dt-color-black-200);
316
322
  }
317
- .dt-leftbar-row[data-v-ca5d7362]:hover .d-avatar__count,
318
- .dt-leftbar-row[data-v-ca5d7362]:focus-within .d-avatar__count {
323
+ .dt-leftbar-row[data-v-85a76326]:hover .d-avatar__count,
324
+ .dt-leftbar-row[data-v-85a76326]:focus-within .d-avatar__count {
319
325
  --avatar-count-color-shadow: var(--dt-theme-sidebar-selected-row-color-background);
320
326
  }
321
- .dt-leftbar-row--has-unread[data-v-ca5d7362] {
327
+ .dt-leftbar-row--has-unread[data-v-85a76326] {
322
328
  --leftbar-row-description-font-weight: var(--dt-font-weight-bold);
323
329
  --leftbar-row-description-color-foreground: var(--dt-theme-sidebar-color-foreground-unread);
324
330
  --leftbar-row-alpha-color-foreground: var(--dt-theme-sidebar-color-foreground-unread);
325
331
  }
326
- .dt-leftbar-row--unread-count[data-v-ca5d7362] .dt-leftbar-row__action {
332
+ .dt-leftbar-row--unread-count[data-v-85a76326] .dt-leftbar-row__action {
327
333
  display: none;
328
334
  }
329
- .dt-leftbar-row--muted[data-v-ca5d7362] {
335
+ .dt-leftbar-row__unread-count-badge[data-v-85a76326] {
336
+ border-top-right-radius: var(--dt-size-radius-0);
337
+ border-bottom-right-radius: var(--dt-size-radius-0);
338
+ }
339
+ .dt-leftbar-row__unread-mention-count-badge[data-v-85a76326] {
340
+ border-top-left-radius: var(--dt-size-radius-0);
341
+ border-bottom-left-radius: var(--dt-size-radius-0);
342
+ background-color: var(--dt-color-purple-500);
343
+ }
344
+ .dt-leftbar-row__unread-mention-count-only-badge[data-v-85a76326] {
345
+ background-color: var(--dt-color-purple-500);
346
+ color: var(--dt-color-foreground-primary-inverted);
347
+ }
348
+ .dt-leftbar-row--muted[data-v-85a76326] {
330
349
  --leftbar-row-opacity: 60%;
331
350
  }
332
- .dt-leftbar-row--selected[data-v-ca5d7362] {
351
+ .dt-leftbar-row--selected[data-v-85a76326] {
333
352
  --leftbar-row-color-background: var(--dt-theme-sidebar-selected-row-color-background);
334
353
  --leftbar-row-description-color-foreground: var(--dt-theme-sidebar-selected-row-color-foreground);
335
354
  }
336
- .dt-leftbar-row--selected[data-v-ca5d7362] .d-presence {
355
+ .dt-leftbar-row--selected[data-v-85a76326] .d-presence {
337
356
  --presence-color-border-base: var(--dt-color-black-200);
338
357
  }
339
- .dt-leftbar-row--selected[data-v-ca5d7362] .d-avatar__count {
358
+ .dt-leftbar-row--selected[data-v-85a76326] .d-avatar__count {
340
359
  --avatar-count-color-shadow: var(--dt-theme-sidebar-selected-row-color-background);
341
360
  }
342
- .dt-leftbar-row__is-typing[data-v-ca5d7362] {
361
+ .dt-leftbar-row__is-typing[data-v-85a76326] {
343
362
  --is-typing-size-shape: var(--dt-size-550);
344
363
  height: var(--is-typing-size-shape);
345
364
  width: var(--is-typing-size-shape);
@@ -351,7 +370,7 @@
351
370
  border-radius: var(--dt-size-radius-pill);
352
371
  opacity: 0.75;
353
372
  }
354
- .dt-leftbar-row__is-typing span[data-v-ca5d7362] {
373
+ .dt-leftbar-row__is-typing span[data-v-85a76326] {
355
374
  transition: all 500ms ease;
356
375
  background: var(--dt-color-surface-strong);
357
376
  height: 4px;
@@ -360,18 +379,18 @@
360
379
  padding: 0;
361
380
  opacity: 0.3;
362
381
  border-radius: var(--dt-size-radius-pill);
363
- animation: wave-ca5d7362 1.5s ease infinite;
382
+ animation: wave-85a76326 1.5s ease infinite;
364
383
  }
365
- .dt-leftbar-row__is-typing span[data-v-ca5d7362]:nth-child(1) {
384
+ .dt-leftbar-row__is-typing span[data-v-85a76326]:nth-child(1) {
366
385
  animation-delay: 0ms;
367
386
  }
368
- .dt-leftbar-row__is-typing span[data-v-ca5d7362]:nth-child(2) {
387
+ .dt-leftbar-row__is-typing span[data-v-85a76326]:nth-child(2) {
369
388
  animation-delay: var(--td100);
370
389
  }
371
- .dt-leftbar-row__is-typing span[data-v-ca5d7362]:nth-child(3) {
390
+ .dt-leftbar-row__is-typing span[data-v-85a76326]:nth-child(3) {
372
391
  animation-delay: var(--td200);
373
392
  }
374
- .dt-leftbar-row__primary[data-v-ca5d7362] {
393
+ .dt-leftbar-row__primary[data-v-85a76326] {
375
394
  display: flex;
376
395
  align-items: center;
377
396
  flex: 1;
@@ -388,18 +407,18 @@
388
407
  padding: 0;
389
408
  border-radius: var(--leftbar-row-radius);
390
409
  }
391
- .dt-leftbar-row__primary[data-v-ca5d7362]:active {
410
+ .dt-leftbar-row__primary[data-v-85a76326]:active {
392
411
  --leftbar-row-color-background: var(--dt-theme-sidebar-row-color-background-active);
393
412
  }
394
- .dt-leftbar-row__primary[data-v-ca5d7362]:focus-visible {
413
+ .dt-leftbar-row__primary[data-v-85a76326]:focus-visible {
395
414
  box-shadow: var(--dt-shadow-focus-inset);
396
415
  }
397
- .dt-leftbar-row__action-button[data-v-ca5d7362] {
416
+ .dt-leftbar-row__action-button[data-v-85a76326] {
398
417
  opacity: 0;
399
418
  width: var(--leftbar-row-action-width);
400
419
  height: var(--leftbar-row-action-height);
401
420
  }
402
- .dt-leftbar-row__alpha[data-v-ca5d7362] {
421
+ .dt-leftbar-row__alpha[data-v-85a76326] {
403
422
  color: var(--leftbar-row-alpha-color-foreground);
404
423
  display: flex;
405
424
  box-sizing: border-box;
@@ -411,11 +430,11 @@
411
430
  height: var(--leftbar-row-alpha-height);
412
431
  border-radius: var(--leftbar-row-radius) 0 0 var(--leftbar-row-radius);
413
432
  }
414
- .dt-leftbar-row__label[data-v-ca5d7362] {
433
+ .dt-leftbar-row__label[data-v-85a76326] {
415
434
  flex: 0 1;
416
435
  min-width: 0;
417
436
  }
418
- .dt-leftbar-row__omega[data-v-ca5d7362] {
437
+ .dt-leftbar-row__omega[data-v-85a76326] {
419
438
  position: absolute;
420
439
  display: flex;
421
440
  right: var(--leftbar-row-action-position-right);
@@ -427,26 +446,26 @@
427
446
  box-sizing: border-box;
428
447
  border-radius: var(--leftbar-row-radius);
429
448
  }
430
- .dt-leftbar-row__unread-badge[data-v-ca5d7362] {
449
+ .dt-leftbar-row__unread-badge[data-v-85a76326] {
431
450
  display: var(--leftbar-row-unread-badge-display);
432
451
  }
433
- .dt-leftbar-row__active-voice[data-v-ca5d7362] {
452
+ .dt-leftbar-row__active-voice[data-v-85a76326] {
434
453
  color: var(--dt-color-purple-400);
435
454
  display: inline-flex;
436
- -webkit-animation-name: opacity-pulsate-ca5d7362;
455
+ -webkit-animation-name: opacity-pulsate-85a76326;
437
456
  -webkit-animation-duration: 1s;
438
457
  -webkit-animation-iteration-count: infinite;
439
458
  -webkit-animation-fill-mode: both;
440
- -moz-animation-name: opacity-pulsate-ca5d7362;
459
+ -moz-animation-name: opacity-pulsate-85a76326;
441
460
  -moz-animation-duration: 1s;
442
461
  -moz-animation-iteration-count: infinite;
443
462
  -moz-animation-fill-mode: both;
444
- animation-name: opacity-pulsate-ca5d7362;
463
+ animation-name: opacity-pulsate-85a76326;
445
464
  animation-duration: 1s;
446
465
  animation-iteration-count: infinite;
447
466
  animation-fill-mode: both;
448
467
  }
449
- .dt-leftbar-row__dnd[data-v-ca5d7362] {
468
+ .dt-leftbar-row__dnd[data-v-85a76326] {
450
469
  padding-top: var(--dt-space-200);
451
470
  padding-right: var(--dt-space-300);
452
471
  color: var(--dt-color-foreground-tertiary);
@@ -454,26 +473,26 @@
454
473
  line-height: var(--dt-font-line-height-400);
455
474
  font-weight: var(--dt-font-weight-medium);
456
475
  }
457
- .dt-leftbar-row__container--off-duty[data-v-ca5d7362] {
476
+ .dt-leftbar-row__container--off-duty[data-v-85a76326] {
458
477
  border-radius: var(--dt-size-radius-500);
459
478
  background-color: var(--dt-badge-color-background-critical);
460
479
  border: var(--dt-size-100) solid var(--dt-color-border-subtle);
461
480
  }
462
- .dt-leftbar-row__container--off-duty[data-v-ca5d7362] .dt-leftbar-row__primary {
481
+ .dt-leftbar-row__container--off-duty[data-v-85a76326] .dt-leftbar-row__primary {
463
482
  margin: calc(var(--dt-size-100) * -1);
464
483
  }
465
- .dt-leftbar-row--contact-centers[data-v-ca5d7362] .dt-leftbar-row__alpha {
484
+ .dt-leftbar-row--contact-centers[data-v-85a76326] .dt-leftbar-row__alpha {
466
485
  padding-right: var(--dt-space-450);
467
486
  padding-left: var(--dt-space-450);
468
487
  }
469
- .dt-leftbar-row--contact-centers .dt-leftbar-row__action-container[data-v-ca5d7362] {
488
+ .dt-leftbar-row--contact-centers .dt-leftbar-row__action-container[data-v-85a76326] {
470
489
  display: inline-flex;
471
490
  align-items: center;
472
491
  justify-content: flex-end;
473
492
  min-width: var(--dt-size-600);
474
493
  height: var(--dt-size-500);
475
494
  }
476
- .dt-leftbar-row[data-v-ca5d7362] .dt-leftbar-row__description {
495
+ .dt-leftbar-row[data-v-85a76326] .dt-leftbar-row__description {
477
496
  display: block;
478
497
  font-weight: var(--leftbar-row-description-font-weight);
479
498
  font-size: var(--leftbar-row-description-font-size);
@@ -483,7 +502,7 @@
483
502
  text-overflow: ellipsis;
484
503
  white-space: nowrap;
485
504
  }
486
- .dt-leftbar-row[data-v-ca5d7362] .dt-leftbar-row__status {
505
+ .dt-leftbar-row[data-v-85a76326] .dt-leftbar-row__status {
487
506
  display: block;
488
507
  color: var(--leftbar-row-status-color-foreground);
489
508
  font-size: var(--leftbar-row-status-font-size);
@@ -493,30 +512,30 @@
493
512
  text-overflow: ellipsis;
494
513
  white-space: nowrap;
495
514
  }
496
- .dt-leftbar-row[data-v-ca5d7362] .dt-leftbar-row__meta-context ~ .dt-leftbar-row__meta-custom:not(:empty):before {
515
+ .dt-leftbar-row[data-v-85a76326] .dt-leftbar-row__meta-context ~ .dt-leftbar-row__meta-custom:not(:empty):before {
497
516
  content: ' • ';
498
517
  color: var(--dt-theme-sidebar-status-color-foreground);
499
518
  }
500
- .dt-leftbar-row__icon-cc[data-v-ca5d7362] {
519
+ .dt-leftbar-row__icon-cc[data-v-85a76326] {
501
520
  border-radius: var(--dt-size-200);
502
521
  width: calc(var(--dt-size-300) * 3.5);
503
522
  height: calc(var(--dt-size-300) * 3.5);
504
523
  }
505
- .opacity-pulsate[data-v-ca5d7362] {
506
- -webkit-animation-name: opacity-pulsate-ca5d7362;
524
+ .opacity-pulsate[data-v-85a76326] {
525
+ -webkit-animation-name: opacity-pulsate-85a76326;
507
526
  -webkit-animation-duration: 1s;
508
527
  -webkit-animation-iteration-count: infinite;
509
528
  -webkit-animation-fill-mode: both;
510
- -moz-animation-name: opacity-pulsate-ca5d7362;
529
+ -moz-animation-name: opacity-pulsate-85a76326;
511
530
  -moz-animation-duration: 1s;
512
531
  -moz-animation-iteration-count: infinite;
513
532
  -moz-animation-fill-mode: both;
514
- animation-name: opacity-pulsate-ca5d7362;
533
+ animation-name: opacity-pulsate-85a76326;
515
534
  animation-duration: 1s;
516
535
  animation-iteration-count: infinite;
517
536
  animation-fill-mode: both;
518
537
  }
519
- @-webkit-keyframes opacity-pulsate-ca5d7362 {
538
+ @-webkit-keyframes opacity-pulsate-85a76326 {
520
539
  0%,
521
540
  100% {
522
541
  opacity: 0.2;
@@ -525,7 +544,7 @@
525
544
  opacity: 1;
526
545
  }
527
546
  }
528
- @-moz-keyframes opacity-pulsate-ca5d7362 {
547
+ @-moz-keyframes opacity-pulsate-85a76326 {
529
548
  0%,
530
549
  100% {
531
550
  opacity: 0.2;
@@ -534,7 +553,7 @@
534
553
  opacity: 1;
535
554
  }
536
555
  }
537
- @keyframes opacity-pulsate-ca5d7362 {
556
+ @keyframes opacity-pulsate-85a76326 {
538
557
  0%,
539
558
  100% {
540
559
  opacity: 0.2;
@@ -543,7 +562,7 @@
543
562
  opacity: 1;
544
563
  }
545
564
  }
546
- @keyframes wave-ca5d7362 {
565
+ @keyframes wave-85a76326 {
547
566
  0%,
548
567
  50%,
549
568
  100% {
@@ -617,6 +636,19 @@
617
636
  .dt-leftbar-row--unread-count[data-v-f44e0386] .dt-leftbar-row__action {
618
637
  display: none;
619
638
  }
639
+ .dt-leftbar-row__unread-count-badge[data-v-f44e0386] {
640
+ border-top-right-radius: var(--dt-size-radius-0);
641
+ border-bottom-right-radius: var(--dt-size-radius-0);
642
+ }
643
+ .dt-leftbar-row__unread-mention-count-badge[data-v-f44e0386] {
644
+ border-top-left-radius: var(--dt-size-radius-0);
645
+ border-bottom-left-radius: var(--dt-size-radius-0);
646
+ background-color: var(--dt-color-purple-500);
647
+ }
648
+ .dt-leftbar-row__unread-mention-count-only-badge[data-v-f44e0386] {
649
+ background-color: var(--dt-color-purple-500);
650
+ color: var(--dt-color-foreground-primary-inverted);
651
+ }
620
652
  .dt-leftbar-row--muted[data-v-f44e0386] {
621
653
  --leftbar-row-opacity: 60%;
622
654
  }
@@ -1,5 +1,6 @@
1
1
  export const BASE_TIPPY_DIRECTIONS: string[];
2
2
  export const TIPPY_STICKY_VALUES: (string | boolean)[];
3
+ export function createTippyPopover(anchorElement: any, options: any): import("tippy.js").Instance<import("tippy.js").Props>[];
3
4
  export function createTippy(anchorElement: any, options: any): import("tippy.js").Instance<import("tippy.js").Props>[];
4
5
  export function getPopperOptions({ boundary, fallbackPlacements, onChangePlacement, hasHideModifierEnabled, tether, }?: {
5
6
  boundary?: string | undefined;
@@ -9,12 +10,6 @@ export function getPopperOptions({ boundary, fallbackPlacements, onChangePlaceme
9
10
  tether?: boolean | undefined;
10
11
  }): {
11
12
  modifiers: ({
12
- name: string;
13
- enabled: boolean;
14
- phase: string;
15
- fn: any;
16
- requiresIfExists: string[];
17
- } | {
18
13
  name: string;
19
14
  options: {
20
15
  fallbackPlacements: any[];
@@ -1 +1 @@
1
- {"version":3,"file":"tippy_utils.d.ts","sourceRoot":"","sources":["../../../../components/popover/tippy_utils.js"],"names":[],"mappings":"AAGA,6CAKE;AAEF,uDAAwE;AAEjE,uHAQN;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCN;AAUM,mDAIN;AAEM;;EAQN"}
1
+ {"version":3,"file":"tippy_utils.d.ts","sourceRoot":"","sources":["../../../../components/popover/tippy_utils.js"],"names":[],"mappings":"AAEA,6CAKE;AAEF,uDAAwE;AACjE,8HAQN;AAEM,uHAKN;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BN;AAUM,mDAIN;AAEM;;EAQN"}