@@ -2,13 +2,15 @@ import type { BaseLGraph, LGraph } from '@/lib/litegraph/src/LGraph'
22import  type  {  LGraphButton  }  from  '@/lib/litegraph/src/LGraphButton' 
33import  type  {  LGraphCanvas  }  from  '@/lib/litegraph/src/LGraphCanvas' 
44import  {  LGraphNode  }  from  '@/lib/litegraph/src/LGraphNode' 
5+ import  type  {  DrawTitleBoxOptions  }  from  '@/lib/litegraph/src/LGraphNode' 
56import  {  LLink  }  from  '@/lib/litegraph/src/LLink' 
67import  type  {  ResolvedConnection  }  from  '@/lib/litegraph/src/LLink' 
78import  {  RecursionError  }  from  '@/lib/litegraph/src/infrastructure/RecursionError' 
89import  type  { 
910  ISubgraphInput , 
1011  IWidgetLocator 
1112}  from  '@/lib/litegraph/src/interfaces' 
13+ import  {  LiteGraph  }  from  '@/lib/litegraph/src/litegraph' 
1214import  type  { 
1315  INodeInputSlot , 
1416  ISlotType , 
@@ -32,6 +34,10 @@ import { ExecutableNodeDTO } from './ExecutableNodeDTO'
3234import  type  {  ExecutableLGraphNode ,  ExecutionId  }  from  './ExecutableNodeDTO' 
3335import  type  {  SubgraphInput  }  from  './SubgraphInput' 
3436
37+ const  workflowSvg  =  new  Image ( ) 
38+ workflowSvg . src  = 
39+   "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3E%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='white' stroke-linecap='round' stroke-width='1.3' d='M9.18613 3.09999H6.81377M9.18613 12.9H7.55288c-3.08678 0-5.35171-2.99581-4.60305-6.08843l.3054-1.26158M14.7486 2.1721l-.5931 2.45c-.132.54533-.6065.92789-1.1508.92789h-2.2993c-.77173 0-1.33797-.74895-1.1508-1.5221l.5931-2.45c.132-.54533.6065-.9279 1.1508-.9279h2.2993c.7717 0 1.3379.74896 1.1508 1.52211Zm-8.3033 0-.59309 2.45c-.13201.54533-.60646.92789-1.15076.92789H2.4021c-.7717 0-1.33793-.74895-1.15077-1.5221l.59309-2.45c.13201-.54533.60647-.9279 1.15077-.9279h2.29935c.77169 0 1.33792.74896 1.15076 1.52211Zm8.3033 9.8-.5931 2.45c-.132.5453-.6065.9279-1.1508.9279h-2.2993c-.77173 0-1.33797-.749-1.1508-1.5221l.5931-2.45c.132-.5453.6065-.9279 1.1508-.9279h2.2993c.7717 0 1.3379.7489 1.1508 1.5221Z'/%3E%3C/svg%3E %3C/svg%3E" 
40+ 
3541/** 
3642 * An instance of a {@link  Subgraph}, displayed as a node on the containing (parent) graph. 
3743 */ 
@@ -555,6 +561,31 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph {
555561      } 
556562    } 
557563  } 
564+   override  drawTitleBox ( 
565+     ctx : CanvasRenderingContext2D , 
566+     { 
567+       scale, 
568+       low_quality =  false , 
569+       title_height =  LiteGraph . NODE_TITLE_HEIGHT , 
570+       box_size =  10 
571+     } : DrawTitleBoxOptions 
572+   ) : void   { 
573+     if  ( this . onDrawTitleBox )  { 
574+       this . onDrawTitleBox ( ctx ,  title_height ,  this . renderingSize ,  scale ) 
575+       return 
576+     } 
577+     ctx . save ( ) 
578+     ctx . fillStyle  =  '#3b82f6' 
579+     ctx . beginPath ( ) 
580+     ctx . roundRect ( 6 ,  - 24.5 ,  22 ,  20 ,  5 ) 
581+     ctx . fill ( ) 
582+     if  ( ! low_quality )  { 
583+       ctx . translate ( 25 ,  23 ) 
584+       ctx . scale ( - 1.5 ,  1.5 ) 
585+       ctx . drawImage ( workflowSvg ,  0 ,  - title_height ,  box_size ,  box_size ) 
586+     } 
587+     ctx . restore ( ) 
588+   } 
558589
559590  /** 
560591   * Synchronizes widget values from this SubgraphNode instance to the 
0 commit comments