/**
 * Handling of BUIC progress bars.
 *
 * @mixin
 * @namespace Bolt.buic.progress
 *
 * @param {Object} bolt - The Bolt module.
 * @param {Object} $ - jQuery.
 */
(function (bolt, $) {
    'use strict';

    /**
     * Bolt.buic.progress mixin container.
     *
     * @private
     * @type {Object}
     */
    var progress = {};

    /**
     * Bind BUIC progress bars.
     *
     * @static
     * @function init
     * @memberof Bolt.buic.progress
     *
     * @param {Object} buic
     */
    progress.init = function (buic) {
        //Adds a new progress bar to the progress bar container.
        $(buic).on('buic:progress-add', function (event, label, value) {
            add(buic, label || '', value || 0);
        });
    };

    /**
     * Adds a new progress bar to the progress bar container.
     *
     * @private
     * @function add
     * @memberof Bolt.buic.progress
     *
     * @param {Object} progress - The progress bar container to add to.
     * @param {string} label - The label.
     * @param {integer} value - An integer between 0 and 100.
     */
    function add(progress, label, value) {
        var bar = $(bolt.data('buic.progress.bar'));

        // Set the label.
        $(bar)
            .attr('data-label', label)
            .find('.progress-bar')
            .text(label);

        // Set the value.
        setValue(bar, value);

        // Add new bar and show container.
        $(progress)
            .append(bar)
            .removeClass('hide');
    }

    /**
     * Sets value of progress bar.
     *
     * @private
     * @function setValue
     * @memberof Bolt.buic.progress
     *
     * @param {Object} bar - The progress bar to set.
     * @param {integer} value - An integer between 0 and 100.
     */
    function setValue(bar, value) {
        $(bar).find('.progress-bar')
            .attr('aria-valuenow', value)
            .css('width', value + '%');
    }

    // Apply mixin container
    bolt.buic.progress = progress;

})(Bolt || {}, jQuery);

@@ -539,16 +539,17 @@
       //
+ 
 Adds a n
@@ -587,32 +587,32 @@
  bar container.%0A
-
         $(buic).
@@ -728,16 +728,196 @@
     %7D);%0A
+        // Remove progress bar from progress bar container.%0A        $(buic).on('buic:progress-remove', function (event, label) %7B%0A            remove(buic, label %7C%7C '');%0A        %7D);%0A
     %7D;%0A%0A
@@ -1637,24 +1637,24 @@
 append(bar)%0A
-
             
@@ -1678,24 +1678,507 @@
 e');%0A    %7D%0A%0A
+    /**%0A     * Remove progress bar from progress bar container.%0A     *%0A     * @private%0A     * @function remove%0A     * @memberof Bolt.buic.progress%0A     *%0A     * @param %7BObject%7D progress - The progress bar container to add to.%0A     * @param %7Bstring%7D label - The label.%0A     */%0A    function remove(progress, label) %7B%0A        $(progress).children().each(function () %7B%0A            if ($(this).data('label') === label) %7B%0A                $(this).remove();%0A            %7D%0A        %7D);%0A    %7D%0A%0A
     /**%0A    

Add 'remove bar' event