/* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */ .xy-flow { --edge-stroke-default: #b1b1b7; --edge-stroke-width-default: 1; --edge-stroke-selected-default: #555; --connectionline-stroke-default: #b1b1b7; --connectionline-stroke-width-default: 1; --attribution-background-color-default: rgba(255, 255, 255, 0.5); --minimap-background-color-default: #fff; --background-pattern-dot-color-default: #91919a; --background-pattern-line-color-default: #eee; --background-pattern-cross-color-default: #e2e2e2; } .xy-flow__container { position: absolute; width: 100%; height: 100%; top: 0; left: 0; } .xy-flow__pane { z-index: 1; cursor: grab; &.selection { cursor: pointer; } &.dragging { cursor: grabbing; } } .xy-flow__viewport { transform-origin: 0 0; z-index: 2; pointer-events: none; } .xy-flow__renderer { z-index: 4; } .xy-flow__selection { z-index: 6; } .xy-flow__nodesselection-rect:focus, .xy-flow__nodesselection-rect:focus-visible { outline: none; } .xy-flow .xy-flow__edges { pointer-events: none; overflow: visible; } .xy-flow__edge-path { stroke: var(--edge-stroke, var(--edge-stroke-default)); stroke-width: var(--edge-stroke-width, var(--edge-stroke-width-default)); fill: none; } .xy-flow__connection-path { stroke: var(--connectionline-stroke, var(--connectionline-stroke-default)); stroke-width: var(--connectionline-stroke-width, var(--connectionline-stroke-width-default)); fill: none; } .xy-flow__edge { pointer-events: visibleStroke; cursor: pointer; &.animated path { stroke-dasharray: 5; animation: dashdraw 0.5s linear infinite; } &.animated path.xy-flow__edge-interaction { stroke-dasharray: none; animation: none; } &.inactive { pointer-events: none; } &.selected, &:focus, &:focus-visible { outline: none; } &.selected .xy-flow__edge-path, &:focus .xy-flow__edge-path, &:focus-visible .xy-flow__edge-path { stroke: var(--edge-stroke-selected, var(--edge-stroke-selected-default)); } &-textwrapper { pointer-events: all; } &-textbg { fill: white; } .xy-flow__edge-text { pointer-events: none; user-select: none; } } .xy-flow__connection { pointer-events: none; .animated { stroke-dasharray: 5; animation: dashdraw 0.5s linear infinite; } } .xy-flow__connectionline { z-index: 1001; overflow: visible; } .xy-flow__nodes { pointer-events: none; transform-origin: 0 0; } .xy-flow__node { position: absolute; user-select: none; pointer-events: all; transform-origin: 0 0; box-sizing: border-box; cursor: grab; &.dragging { cursor: grabbing; } /* only used in Svelte Flow, should we remove it here? */ &.draggable { cursor: grab; pointer-events: all; } } .xy-flow__nodesselection { z-index: 3; transform-origin: left top; pointer-events: none; &-rect { position: absolute; pointer-events: all; cursor: grab; } } .xy-flow__handle { position: absolute; pointer-events: none; min-width: 5px; min-height: 5px; &.connectionindicator { pointer-events: all; cursor: crosshair; } &-bottom { top: auto; left: 50%; bottom: -4px; transform: translate(-50%, 0); } &-top { left: 50%; top: -4px; transform: translate(-50%, 0); } &-left { top: 50%; left: -4px; transform: translate(0, -50%); } &-right { right: -4px; top: 50%; transform: translate(0, -50%); } } .xy-flow__edgeupdater { cursor: move; pointer-events: all; } .xy-flow__panel { position: absolute; z-index: 5; margin: 15px; &.top { top: 0; } &.bottom { bottom: 0; } &.left { left: 0; } &.right { right: 0; } &.center { left: 50%; transform: translateX(-50%); } } .xy-flow__attribution { font-size: 10px; background: var(--attribution-background-color, var(--attribution-background-color-default)); padding: 2px 3px; margin: 0; a { text-decoration: none; color: #999; } } @keyframes dashdraw { from { stroke-dashoffset: 10; } } .xy-flow__edgelabel-renderer { position: absolute; width: 100%; height: 100%; pointer-events: none; user-select: none; left: 0; top: 0; } .xy-flow__minimap { background: var(--minimap-background-color, var(--minimap-background-color-default)); } .xy-flow__background { pointer-events: none; z-index: -1; background-color: var(--background-color-props, 'transparent'); } .xy-flow__background-pattern { &.dots { fill: var( --background-pattern-color-props, var(--background-pattern-color, var(--background-pattern-dot-color-default)) ); } &.lines { stroke: var( --background-pattern-color-props, var(--background-pattern-color, var(--background-pattern-line-color-default)) ); } &.cross { stroke: var( --background-pattern-color-props, var(--background-pattern-color, var(--background-pattern-cross-color-default)) ); } } .xy-flow__controls { &-button { display: flex; justify-content: center; align-items: center; height: 26px; width: 26px; padding: 4px; svg { width: 100%; max-width: 12px; max-height: 12px; } } }