diff --git a/docs/javascript/semantic.js b/docs/javascript/semantic.js
index 34b45e3dc..be0167263 100755
--- a/docs/javascript/semantic.js
+++ b/docs/javascript/semantic.js
@@ -10,14 +10,14 @@ semantic.ready = function() {
var
$ui = $('.ui').not('.hover, .down'),
$swap = $('.theme.menu .item'),
- $menu = $('.menu.button'),
+ $menu = $('.sidebar.button'),
$demo = $('.demo'),
$waypoints = $('h2'),
$example = $('.example'),
$peek = $('.peek'),
- $peekMenu = $peek.find('li'),
+ $peekMenu = $peek.find('.item'),
$code = $('div.code'),
// alias
diff --git a/docs/library/sidr.js b/docs/library/sidr.js
old mode 100644
new mode 100755
index 74c3cd4b3..a2aa07473
--- a/docs/library/sidr.js
+++ b/docs/library/sidr.js
@@ -1,4 +1,260 @@
-/*! Sidr - v1.1.1 - 2013-03-14
+/*
+ * Sidr
* https://github.com/artberri/sidr
- * Copyright (c) 2013 Alberto Varela; Licensed MIT */
-(function(e){var t=!1,i=!1,o={isUrl:function(e){var t=RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");return t.test(e)?!0:!1},loadContent:function(e,t){e.html(t)},addPrefix:function(e){var t=e.attr("id"),i=e.attr("class");"string"==typeof t&&""!==t&&e.attr("id",t.replace(/([A-Za-z0-9_.\-]+)/g,"sidr-id-$1")),"string"==typeof i&&""!==i&&"sidr-inner"!==i&&e.attr("class",i.replace(/([A-Za-z0-9_.\-]+)/g,"sidr-class-$1")),e.removeAttr("style")},execute:function(o,n,s){"function"==typeof n?(s=n,n="sidr"):n||(n="sidr");var a,d,l,c=e("#"+n),f=e(c.data("body")),u=e("html"),p=c.outerWidth(!0),y=c.data("speed"),v=c.data("side");if("open"===o||"toogle"===o&&!c.is(":visible")){if(c.is(":visible")||t)return;if(i!==!1)return r.close(i,function(){r.open(n)}),void 0;t=!0,"left"===v?(a={left:p+"px"},d={left:"0px"}):(a={right:p+"px"},d={right:"0px"}),l=u.scrollTop(),u.css("overflow-x","hidden").scrollTop(l),f.css({width:f.width(),position:"absolute"}).animate(a,y),c.css("display","block").animate(d,y,function(){t=!1,i=n,"function"==typeof s&&s(n)})}else{if(!c.is(":visible")||t)return;t=!0,"left"===v?(a={left:0},d={left:"-"+p+"px"}):(a={right:0},d={right:"-"+p+"px"}),l=u.scrollTop(),u.removeAttr("style").scrollTop(l),f.animate(a,y),c.animate(d,y,function(){c.removeAttr("style"),f.removeAttr("style"),e("html").removeAttr("style"),t=!1,i=!1,"function"==typeof s&&s(n)})}}},r={open:function(e,t){o.execute("open",e,t)},close:function(e,t){o.execute("close",e,t)},toogle:function(e,t){o.execute("toogle",e,t)}};e.sidr=function(t){return r[t]?r[t].apply(this,Array.prototype.slice.call(arguments,1)):"function"!=typeof t&&"string"!=typeof t&&t?(e.error("Method "+t+" does not exist on jQuery.sidr"),void 0):r.toogle.apply(this,arguments)},e.fn.sidr=function(t){var i=e.extend({name:"sidr",speed:200,side:"left",source:null,renaming:!0,body:"body"},t),n=i.name,s=e("#"+n);if(0===s.length&&(s=e("
").attr("id",n).appendTo(e("body"))),s.addClass("sidr").addClass(i.side).data({speed:i.speed,side:i.side,body:i.body}),"function"==typeof i.source){var a=i.source(n);o.loadContent(s,a)}else if("string"==typeof i.source&&o.isUrl(i.source))e.get(i.source,function(e){o.loadContent(s,e)});else if("string"==typeof i.source){var d="",l=i.source.split(",");if(e.each(l,function(t,i){d+=''+e(i).html()+"
"}),i.renaming){var c=e("").html(d);c.find("*").each(function(t,i){var r=e(i);o.addPrefix(r)}),d=c.html()}o.loadContent(s,d)}else null!==i.source&&e.error("Invalid Sidr Source");return this.each(function(){var t=e(this),i=t.data("sidr");i||(t.data("sidr",n),t.click(function(e){e.preventDefault(),r.toogle(n)}))})}})(jQuery);
\ No newline at end of file
+ *
+ * Copyright (c) 2013 Alberto Varela
+ * Licensed under the MIT license.
+ */
+
+;(function( $ ){
+
+ var sidrMoving = false,
+ sidrOpened = false;
+
+ // Private methods
+ var privateMethods = {
+ // Check for valids urls
+ // From : http://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-an-url
+ isUrl: function (str) {
+ var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
+ '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
+ '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
+ '(\\#[-a-z\\d_]*)?$','i'); // fragment locator
+ if(!pattern.test(str)) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+ // Loads the content into the menu bar
+ loadContent: function($menu, content) {
+ $menu.html(content);
+ },
+ // Add sidr prefixes
+ addPrefix: function($element) {
+ var elementId = $element.attr('id'),
+ elementClass = $element.attr('class');
+
+ if(typeof elementId === 'string' && '' !== elementId) {
+ $element.attr('id', elementId.replace(/([A-Za-z0-9_.\-]+)/g, 'sidr-id-$1'));
+ }
+ if(typeof elementClass === 'string' && '' !== elementClass && 'sidr-inner' !== elementClass) {
+ $element.attr('class', elementClass.replace(/([A-Za-z0-9_.\-]+)/g, 'sidr-class-$1'));
+ }
+ $element.removeAttr('style');
+ },
+ execute: function(action, name, callback) {
+ // Check arguments
+ if(typeof name === 'function') {
+ callback = name;
+ name = 'sidr';
+ }
+ else if(!name) {
+ name = 'sidr';
+ }
+
+ // Declaring
+ var $menu = $('#' + name),
+ $body = $($menu.data('body')),
+ $html = $('html'),
+ menuWidth = $menu.outerWidth(true),
+ speed = $menu.data('speed'),
+ side = $menu.data('side'),
+ bodyAnimation,
+ menuAnimation,
+ scrollTop;
+
+ // Open Sidr
+ if('open' === action || ('toogle' === action && !$menu.is(':visible'))) {
+ // Check if we can open it
+ if( $menu.is(':visible') || sidrMoving ) {
+ return;
+ }
+
+ // If another menu opened close first
+ if(sidrOpened !== false) {
+ methods.close(sidrOpened, function() {
+ methods.open(name);
+ });
+
+ return;
+ }
+
+ // Lock sidr
+ sidrMoving = true;
+
+ // Left or right?
+ if(side === 'left') {
+ bodyAnimation = {left: menuWidth + 'px'};
+ menuAnimation = {left: '0px'};
+ }
+ else {
+ bodyAnimation = {right: menuWidth + 'px'};
+ menuAnimation = {right: '0px'};
+ }
+
+ // Prepare page
+ scrollTop = $html.scrollTop();
+ $html.css('overflow-x', 'hidden').scrollTop(scrollTop);
+
+ // Open menu
+ $body.css({
+ width: $body.width(),
+ position: 'absolute'
+ }).animate(bodyAnimation, speed);
+ $menu.css('display', 'block').animate(menuAnimation, speed, function() {
+ sidrMoving = false;
+ sidrOpened = name;
+ // Callback
+ if(typeof callback === 'function') {
+ callback(name);
+ }
+ });
+ }
+ // Close Sidr
+ else {
+ // Check if we can close it
+ if( !$menu.is(':visible') || sidrMoving ) {
+ return;
+ }
+
+ // Lock sidr
+ sidrMoving = true;
+
+ // Right or left menu?
+ if(side === 'left') {
+ bodyAnimation = {left: 0};
+ menuAnimation = {left: '-' + menuWidth + 'px'};
+ }
+ else {
+ bodyAnimation = {right: 0};
+ menuAnimation = {right: '-' + menuWidth + 'px'};
+ }
+
+ // Close menu
+ scrollTop = $html.scrollTop();
+ $html.removeAttr('style').scrollTop(scrollTop);
+ $body.animate(bodyAnimation, speed);
+ $menu.animate(menuAnimation, speed, function() {
+ $menu.removeAttr('style');
+ $body.removeAttr('style');
+ $('html').removeAttr('style');
+ sidrMoving = false;
+ sidrOpened = false;
+ // Callback
+ if(typeof callback === 'function') {
+ callback(name);
+ }
+ });
+ }
+ }
+ };
+
+ // Sidr public methods
+ var methods = {
+ open: function(name, callback) {
+ privateMethods.execute('open', name, callback);
+ },
+ close: function(name, callback) {
+ privateMethods.execute('close', name, callback);
+ },
+ toogle: function(name, callback) {
+ privateMethods.execute('toogle', name, callback);
+ }
+ };
+
+ $.sidr = function( method ) {
+
+ if ( methods[method] ) {
+ return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
+ } else if ( typeof method === 'function' || typeof method === 'string' || ! method ) {
+ return methods.toogle.apply( this, arguments );
+ } else {
+ $.error( 'Method ' + method + ' does not exist on jQuery.sidr' );
+ }
+
+ };
+
+ $.fn.sidr = function( options ) {
+
+ var settings = $.extend( {
+ name : 'sidr', // Name for the 'sidr'
+ speed : 200, // Accepts standard jQuery effects speeds (i.e. fast, normal or milliseconds)
+ side : 'left', // Accepts 'left' or 'right'
+ source : null, // Override the source of the content.
+ renaming : true, // The ids and classes will be prepended with a prefix when loading existent content
+ body : 'body' // Page container selector,
+ }, options);
+
+ var name = settings.name,
+ $sideMenu = $('#' + name);
+
+ // If the side menu do not exist create it
+ if( $sideMenu.length === 0 ) {
+ $sideMenu = $('')
+ .attr('id', name)
+ .appendTo($('body'));
+ }
+
+ // Adding styles and options
+ $sideMenu
+ .addClass('sidr')
+ .addClass(settings.side)
+ .data({
+ speed : settings.speed,
+ side : settings.side,
+ body : settings.body
+ });
+
+ // The menu content
+ if(typeof settings.source === 'function') {
+ var newContent = settings.source(name);
+ privateMethods.loadContent($sideMenu, newContent);
+ }
+ else if(typeof settings.source === 'string' && privateMethods.isUrl(settings.source)) {
+ $.get(settings.source, function(data) {
+ privateMethods.loadContent($sideMenu, data);
+ });
+ }
+ else if(typeof settings.source === 'string') {
+ var htmlContent = '',
+ selectors = settings.source.split(',');
+
+ $.each(selectors, function(index, element) {
+ htmlContent += '' + $(element).html() + '
';
+ });
+
+ // Renaming ids and classes
+ if(settings.renaming) {
+ var $htmlContent = $('').html(htmlContent);
+ $htmlContent.find('*').each(function(index, element) {
+ var $element = $(element);
+ privateMethods.addPrefix($element);
+ });
+ htmlContent = $htmlContent.html();
+ }
+ privateMethods.loadContent($sideMenu, htmlContent);
+ }
+ else if(settings.source !== null) {
+ $.error('Invalid Sidr Source');
+ }
+
+ return this.each(function(){
+
+ var $this = $(this),
+ data = $this.data('sidr');
+
+ // If the plugin hasn't been initialized yet
+ if ( ! data ) {
+ $this.data('sidr', name);
+ $this.click(function(e) {
+ e.preventDefault();
+ methods.toogle(name);
+ });
+ }
+ });
+ };
+
+})( jQuery );
\ No newline at end of file
diff --git a/docs/menu.html b/docs/menu.html
index 214a18d48..f01ed982f 100755
--- a/docs/menu.html
+++ b/docs/menu.html
@@ -143,7 +143,7 @@
-
+
@@ -155,9 +155,10 @@
-
@@ -202,7 +203,7 @@
Vertical Menu
This example uses several menu elements, an unclickable block, a clickable text link, a clickable icon link, and a dropdown group
-
A vertical menus width must typically be defined. An alternative is to use the fluid variation in conjunction with ui grid.
+
A vertical menu's width defaults to an arbitrary size. To have it fit your content more precisely use the fluid variation in conjunction with
ui grid.