/*
 * Canonical canvas interaction chrome states.
 *
 * The canvas interaction controller owns the body classes below. Keep the
 * visual response declarative so canvas gestures do not need DOM observers or
 * runtime inline-style writers.
 */
body.is-panning #v2-side-plus-holder,
body.is-zooming #v2-side-plus-holder,
body.is-viewport-animating #v2-side-plus-holder,
body.is-panning .node-floating-toolbar,
body.is-zooming .node-floating-toolbar,
body.is-viewport-animating .node-floating-toolbar {
  visibility: hidden !important;
  pointer-events: none !important;
}

/*
 * Scope transition suppression to the moving canvas primitives. Broad
 * descendant selectors make every control recalculate during a gesture.
 */
body.is-dragging #v2-canvas,
body.is-panning #v2-canvas,
body.is-zooming #v2-canvas,
body.is-dragging #v2-canvas .v2-node,
body.is-panning #v2-canvas .v2-node,
body.is-zooming #v2-canvas .v2-node,
body.is-dragging #v2-canvas #v2-edges,
body.is-panning #v2-canvas #v2-edges,
body.is-zooming #v2-canvas #v2-edges,
body.is-dragging #v2-canvas .connection-main,
body.is-panning #v2-canvas .connection-main,
body.is-zooming #v2-canvas .connection-main,
body.is-dragging #v2-canvas .node-floating-toolbar,
body.is-panning #v2-canvas .node-floating-toolbar,
body.is-zooming #v2-canvas .node-floating-toolbar,
body.is-dragging #v2-canvas .text-prompt-panel,
body.is-panning #v2-canvas .text-prompt-panel,
body.is-zooming #v2-canvas .text-prompt-panel {
  transition: none !important;
  animation: none !important;
}
