.wkf-toolbox-item { cursor: grab; } .wkf-toolbox-item:active { cursor: grabbing; } .wkf-splitter { cursor: row-resize; height: 1px; background-color: var(--color-splitter); margin: 4px 0; transition: background-color 0.2s; position: relative; /* Ensure the parent has position relative */ } .wkf-splitter::after { --color-resize: var(--color-splitter); content: ''; /* This is required */ position: absolute; /* Position as needed */ z-index: 1; display: block; /* Makes it a block element */ height: 6px; width: 20px; background-color: var(--color-splitter); /* Center horizontally */ left: 50%; transform: translateX(-50%); /* Center vertically */ top: 50%; margin-top: -3px; /* Half of the height */ /* Alternatively: transform: translate(-50%, -50%); */ } .wkf-splitter:hover, .wkf-splitter-active { background-color: var(--color-splitter-active); } .wkf-designer { min-height: 230px; } .wkf-properties { box-sizing: border-box; } .wkf-canvas { position: relative; box-sizing: border-box; background-image: linear-gradient(rgba(0,0,0,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,.1) 1px, transparent 1px); background-size: 20px 20px; } .wkf-canvas-error { border: 3px solid var(--color-error); } .wkf-toolbox { min-height: 230px; width: 8rem; /* w-32 (32 * 0.25rem = 8rem) */ padding: 0.5rem; /* p-2 */ background-color: var(--color-base-100); /* bg-base-100 */ border-radius: 0.5rem; /* rounded-lg */ border-width: 1px; /* border */ } .wkf-workflow-component { position: absolute; cursor: move; border: 2px solid transparent; transition: all 0.2s; height: 64px; } .wkf-workflow-component:hover { border-color: #3b82f6; transform: scale(1.02); } .wkf-workflow-component.selected { border-color: #ef4444; box-shadow: 0 0 10px rgba(239, 68, 68, 0.3); } .wkf-workflow-component.dragging { transition: none; } .wkf-workflow-component.error { background: var(--color-error); } .wkf-component-content { padding: 0.75rem; /* p-3 in Tailwind */ border-radius: 0.5rem; /* rounded-lg in Tailwind */ border-width: 2px; /* border-2 in Tailwind */ background-color: white; /* bg-white in Tailwind */ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg in Tailwind */ display: flex; /* flex in Tailwind */ align-items: center; /* items-center in Tailwind */ } .wkf-component-content.error { background: var(--color-error); } .wkf-component-content.not-run { background: var(--color-neutral); } .wkf-connection-line { position: absolute; pointer-events: none; z-index: 1; } .wkf-connection-point { position: absolute; width: 12px; height: 12px; background: #3b82f6; border-radius: 50%; cursor: crosshair; border: 2px solid white; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transition: background-color 0.2s, transform 0.2s; } .wkf-connection-point.potential-connection { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); animation: pulse 0.7s infinite; } .wkf-connection-point.potential-start { background: #ef4444; } .wkf-output-point { right: -6px; top: 50%; transform: translateY(-50%); } .wkf-input-point { left: -6px; top: 50%; transform: translateY(-50%); } .wkf-connection-point:hover { background: #ef4444; transform: translateY(-50%) scale(1.2); } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); } 70% { box-shadow: 0 0 0 6px rgba(59, 130, 246, 0); } 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } } .wkf-connection-path { stroke: #3b82f6; stroke-width: 2; fill: none; cursor: pointer; pointer-events: none; transition: stroke 0.2s ease, stroke-width 0.2s ease; } .wkf-connection-path-thick { stroke: transparent; stroke-width: 10; fill: none; cursor: pointer; pointer-events: stroke; } .wkf-connection-path-arrowhead { fill:#3b82f6; } .wkf-connection-selected { stroke: #ef4444 !important; } .wkf-connection-path-arrowhead-selected { fill:#ef4444 !important;; }