docs: function (params) {
  		var pointerEventsSpec = params.pointerEventsSpec || "all", renderer = {};
  
  		_jp.jsPlumbUIComponent.apply(this, params.originalArgs);
  		this.canvas = null;
  		this.path = null;
  		this.svg = null;
  		this.bgCanvas = null;
  
  		var clazz = params.cssClass + " " + (params.originalArgs[0].cssClass || ""),
  			svgParams = {
  				"style": "",
  				"width": 0,
  				"height": 0,
  				"pointer-events": pointerEventsSpec,
  				"position": "absolute"
  			};
  
  		this.svg = _node("svg", svgParams);
  
  		if (params.useDivWrapper) {
  			this.canvas = jsPlumb.createElement("div", { position : "absolute" });
  			_ju.sizeElement(this.canvas, 0, 0, 1, 1);
  			this.canvas.className = clazz;
  		}
  		else {
  			_attr(this.svg, { "class": clazz });
  			this.canvas = this.svg;
  		}
  
  		params._jsPlumb.appendElement(this.canvas, params.originalArgs[0].parent);
  		if (params.useDivWrapper) this.canvas.appendChild(this.svg);
  
  		var displayElements = [ this.canvas ];
  		this.getDisplayElements = function () {
  			return displayElements;
  		};
  
  		this.appendDisplayElement = function (el) {
  			displayElements.push(el);
  		};
  
  		this.paint = function (style, anchor, extents) {
  			if (style != null) {
  
  				var xy = [ this.x, this.y ], wh = [ this.w, this.h ], p;
  				if (extents != null) {
  					if (extents.xmin < 0) xy[0] += extents.xmin;
  					if (extents.ymin < 0) xy[1] += extents.ymin;
  					wh[0] = extents.xmax + ((extents.xmin < 0) ? -extents.xmin : 0);
  					wh[1] = extents.ymax + ((extents.ymin < 0) ? -extents.ymin : 0);
  				}
  
  				if (params.useDivWrapper) {
  					_ju.sizeElement(this.canvas, xy[0], xy[1], wh[0], wh[1]);
  					xy[0] = 0;
  					xy[1] = 0;
  					p = _pos([ 0, 0 ]);
  				}
  				else
  					p = _pos([ xy[0], xy[1] ]);
  
  				renderer.paint.apply(this, arguments);
  
  				_attr(this.svg, {
  					"style": p,
  					"width": wh[0] || 0,
  					"height": wh[1] || 0
  				});
  			}
  		};
  
  		return {
  			renderer: renderer
  		};
  	}