@jsenv/navi 0.29.395 → 0.29.396

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.
@@ -6592,10 +6592,6 @@ const css$13 = /* css */ `
6592
6592
  border: none;
6593
6593
  outline: none; /* programmatic focus may land here briefly before being redirected to close button */
6594
6594
  opacity: 0;
6595
- /* opacity only: the placement lives in the translate property, which
6596
- applyNewPosition (visible_rect.js) owns and animates itself through the
6597
- Web Animations API, same mechanism Popover/Dialog use. */
6598
- transition: opacity 0.2s ease-in-out;
6599
6595
  cursor: initial; /* Do not inherit element cursor, inside the element but should use regular cursor */
6600
6596
  pointer-events: auto; /* Must be interactive to be closabled (overrid list item pointer-events none for instance) */
6601
6597
  overflow: visible;
@@ -6604,6 +6600,15 @@ const css$13 = /* css */ `
6604
6600
  position: absolute;
6605
6601
  }
6606
6602
 
6603
+ /* Armed after the first placement: the first show answers a tap or a
6604
+ click and appears at once, the fade is for the anchor scrolling out of
6605
+ view and back. Opacity only: the placement lives in the translate
6606
+ property, which applyNewPosition (visible_rect.js) owns and animates
6607
+ itself through the Web Animations API, same mechanism Popover/Dialog use. */
6608
+ &[data-placed] {
6609
+ transition: opacity 0.12s ease-out;
6610
+ }
6611
+
6607
6612
  &[data-status="success"] {
6608
6613
  --x-callout-status-color: var(--callout-success-color);
6609
6614
  }
@@ -8031,6 +8036,13 @@ const positionCallout = (
8031
8036
  calloutFrameElement.innerHTML = generateSvgWithoutArrow(width, height);
8032
8037
  calloutElement.style.opacity = 1;
8033
8038
  }
8039
+ if (!calloutElement.hasAttribute("data-placed")) {
8040
+ // Style flush between the first opacity write and arming the
8041
+ // transition, so that first write lands unanimated in the same frame.
8042
+ // eslint-disable-next-line no-unused-expressions
8043
+ getComputedStyle(calloutElement).opacity;
8044
+ calloutElement.setAttribute("data-placed", "");
8045
+ }
8034
8046
  applyNewPosition(calloutElement, position);
8035
8047
  },
8036
8048
  );