text: 
  function $ToolBox(tools, is_extras){
  	var $tb = $(E("div")).addClass("tool-box");
  	var $tools = $(E("div")).addClass("tools");
  	var $tool_options = $(E("div")).addClass("tool-options");
  	
  	var showing_tooltips = false;
  	$tools.on("pointerleave", function(){
  		showing_tooltips = false;
  		$status_text.default();
  	});
  	
  	var $buttons = $($.map(tools, function(tool, i){
  		var $b = $(E("div")).addClass("tool");
  		$b.appendTo($tools);
  		tool.$button = $b;
  		
  		$b.attr("title", tool.name);
  		
  		var $icon = $(E("span"));
  		$icon.appendTo($b);
  		var bx = (i%2)*24;
  		var by = (~~(i/2))*25;
  		$icon.css({
  			display: "block",
  			position: "absolute",
  			left: 0,
  			top: 0,
  			width: 24,
  			height: 24,
  			backgroundImage: "url(images/toolbar-icons.png)",
  			backgroundPosition: bx + "px " + -by + "px",
  		});
  		
  		$b.on("click", function(e){
  			if (e.shiftKey || e.ctrlKey) {
  				select_tool(tool, true);
  				return;
  			}
  			if(selected_tool === tool && tool.deselect){
  				select_tools(return_to_tools);
  			}else{
  				select_tool(tool);
  			}
  		});
  		
  		$b.on("pointerenter", function(){
  			var show_tooltip = function(){
  				showing_tooltips = true;
  				$status_text.text(tool.description);
  			};
  			if(showing_tooltips){
  				show_tooltip();
  			}else{
  				var tid = setTimeout(show_tooltip, 300);
  				$b.on("pointerleave", function(){
  					clearTimeout(tid);
  				});
  			}
  		});
  		
  		return $b[0];
  	}));
  	
  	var $c = $Component(is_extras ? "Extra Tools" : "Tools", "tall", $tools.add($tool_options));
  	$c.update_selected_tool = function(){
  		$buttons.removeClass("selected");
  		selected_tools.forEach((selected_tool)=> {
  			selected_tool.$button.addClass("selected");
  		});
  		$tool_options.children().detach();
  		$tool_options.append(selected_tool.$options);
  		$tool_options.children().trigger("update");
  		$canvas.css({
  			cursor: Cursor(selected_tool.cursor),
  		});
  	};
  	$c.update_selected_tool();
  	return $c;
  }
  