docs: function(json) {
      var prefix = $.time(), 
          ch = [], 
          st = this.st,
          name = $.splat(json.label), 
          color = $.splat(json.color || this.colors),
          config = this.config,
          gradient = !!config.type.split(":")[1],
          animate = config.animate;
      
      for(var i=0, values=json.values, l=values.length; i<l-1; i++) {
        var val = values[i], prev = values[i-1], next = values[i+1];
        var valLeft = $.splat(values[i].values), valRight = $.splat(values[i+1].values);
        var valArray = $.zip(valLeft, valRight);
        var acumLeft = 0, acumRight = 0;
        ch.push({
          'id': prefix + val.label,
          'name': val.label,
          'data': {
            'value': valArray,
            '$valueArray': valArray,
            '$colorArray': color,
            '$stringArray': name,
            '$next': next.label,
            '$prev': prev? prev.label:null,
            '$config': config,
            '$label': val.displaylabel,
            '$gradient': gradient
          },
          'children': []
        });
      }
      var root = {
        'id': prefix + '$root',
        'name': '',
        'data': {
          '$type': 'none',
          '$width': 1,
          '$height': 1
        },
        'children': ch
      };
      st.loadJSON(root);
      
      this.normalizeDims();
      st.compute();
      st.select(st.root);
      if(animate) {
        st.fx.animate({
          modes: ['node-property:height:dimArray'],
          duration:1500
        });
      }
    }