@brightspace-ui/core 3.82.0 → 3.83.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -193,9 +193,6 @@ class Form extends FormMixin(LitElement) {
193
193
  }
194
194
 
195
195
  _setupDialogValidationReset() {
196
- const flag = window.D2L?.LP?.Web?.UI?.Flags.Flag('GAUD-6979-dialog-close-reset-validation', true) ?? true;
197
- if (!flag) return;
198
-
199
196
  const dialogAncestor = findComposedAncestor(
200
197
  this,
201
198
  node => node?._isDialogMixin
@@ -451,6 +451,9 @@ class Tooltip extends RtlMixin(LitElement) {
451
451
  this._isHovering = false;
452
452
  this._resizeRunSinceTruncationCheck = false;
453
453
  this._viewportMargin = defaultViewportMargin;
454
+
455
+ this.#isHoveringTooltip = false;
456
+ this.#mouseLeftTooltip = false;
454
457
  }
455
458
 
456
459
  /** @ignore */
@@ -525,7 +528,7 @@ class Tooltip extends RtlMixin(LitElement) {
525
528
  return html`
526
529
  <div class="d2l-tooltip-container">
527
530
  <div class="d2l-tooltip-position" style=${styleMap(tooltipPositionStyle)}>
528
- <div class="${classMap(contentClasses)}">
531
+ <div class="${classMap(contentClasses)}" @mouseenter="${this.#onTooltipMouseEnter}" @mouseleave="${this.#onTooltipMouseLeave}">
529
532
  <div role="text">
530
533
  <slot></slot>
531
534
  </div>
@@ -534,7 +537,7 @@ class Tooltip extends RtlMixin(LitElement) {
534
537
  <div class="d2l-tooltip-pointer d2l-tooltip-pointer-outline">
535
538
  <div></div>
536
539
  </div>
537
- <div class="d2l-tooltip-pointer">
540
+ <div class="d2l-tooltip-pointer" @mouseenter="${this.#onTooltipMouseEnter}" @mouseleave="${this.#onTooltipMouseLeave}">
538
541
  <div></div>
539
542
  </div>
540
543
  </div>`
@@ -647,6 +650,9 @@ class Tooltip extends RtlMixin(LitElement) {
647
650
  this.style.height = `${positionRect.height}px`;
648
651
  }
649
652
 
653
+ #isHoveringTooltip;
654
+ #mouseLeftTooltip;
655
+
650
656
  _addListeners() {
651
657
  if (!this._target) {
652
658
  return;
@@ -842,6 +848,12 @@ class Tooltip extends RtlMixin(LitElement) {
842
848
  }
843
849
 
844
850
  _onTargetMouseEnter() {
851
+ // came from tooltip so keep showing
852
+ if (this.#mouseLeftTooltip) {
853
+ this._isHovering = true;
854
+ return;
855
+ }
856
+
845
857
  this._hoverTimeout = setTimeout(async() => {
846
858
  if (this.showTruncatedOnly) {
847
859
  await this._updateTruncating();
@@ -856,7 +868,8 @@ class Tooltip extends RtlMixin(LitElement) {
856
868
  _onTargetMouseLeave() {
857
869
  clearTimeout(this._hoverTimeout);
858
870
  this._isHovering = false;
859
- this._updateShowing();
871
+ if (this.showing) resetDelayTimeout();
872
+ setTimeout(() => this._updateShowing(), 100); // delay to allow for mouseenter to fire if hovering on tooltip
860
873
  }
861
874
 
862
875
  _onTargetResize() {
@@ -925,7 +938,6 @@ class Tooltip extends RtlMixin(LitElement) {
925
938
  this._dismissibleId = null;
926
939
  }
927
940
  if (dispatch) {
928
- resetDelayTimeout();
929
941
  this.dispatchEvent(new CustomEvent(
930
942
  'd2l-tooltip-hide', { bubbles: true, composed: true }
931
943
  ));
@@ -934,7 +946,7 @@ class Tooltip extends RtlMixin(LitElement) {
934
946
  }
935
947
 
936
948
  _updateShowing() {
937
- this.showing = this._isFocusing || this._isHovering || this.forceShow;
949
+ this.showing = this._isFocusing || this._isHovering || this.forceShow || this.#isHoveringTooltip;
938
950
  }
939
951
 
940
952
  _updateTarget() {
@@ -1009,5 +1021,24 @@ class Tooltip extends RtlMixin(LitElement) {
1009
1021
  this._resizeRunSinceTruncationCheck = false;
1010
1022
  target.removeChild(cloneContainer);
1011
1023
  }
1024
+
1025
+ #onTooltipMouseEnter() {
1026
+ if (!this.showing) return;
1027
+ this.#isHoveringTooltip = true;
1028
+ this._updateShowing();
1029
+ }
1030
+
1031
+ #onTooltipMouseLeave() {
1032
+ clearTimeout(this._mouseLeaveTimeout);
1033
+
1034
+ this.#isHoveringTooltip = false;
1035
+ this.#mouseLeftTooltip = true;
1036
+ resetDelayTimeout();
1037
+
1038
+ this._mouseLeaveTimeout = setTimeout(() => {
1039
+ this.#mouseLeftTooltip = false;
1040
+ this._updateShowing();
1041
+ }, 100); // delay to allow for mouseenter to fire if hovering on target
1042
+ }
1012
1043
  }
1013
1044
  customElements.define('d2l-tooltip', Tooltip);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "3.82.0",
3
+ "version": "3.83.1",
4
4
  "description": "A collection of accessible, free, open-source web components for building Brightspace applications",
5
5
  "type": "module",
6
6
  "repository": "https://github.com/BrightspaceUI/core.git",